タグ付けされた質問 「activerecord」

Active Recordは、ドメインロジックとストレージアブストラクションを1つのオブジェクトに組み合わせたパターンです。パターンに関する質問にはこのタグを使用し、Rails ORMフレームワークに関する質問には[rails-activerecord]を使用します。


6
「参照」移行での列名の指定
migration別のテーブルを参照してRailsで作成したい。通常、私は次のようなことをします: add_column :post, :user, :references これにより、テーブルに名前が付けられた列が作成さuser_idれpostsます。しかし、ではなく、のuser_idようなものが欲しい場合はどうなりauthor_idますか?どうやってやるの?


3
ActiveRecord、has_many:through、および多態的な関連付け
フォーク、 これを正しく理解したことを確認したい。そして、ここでの継承のケース(SentientBeing)を無視して、代わりにhas_many:through関係のポリモーフィックモデルに焦点を合わせてください。とはいえ、次のことを考慮してください... class Widget < ActiveRecord::Base has_many :widget_groupings has_many :people, :through => :widget_groupings, :source => :person, :conditions => "widget_groupings.grouper_type = 'Person'" has_many :aliens, :through => :widget_groupings, :source => :alien, :conditions => "video_groupings.grouper_type = 'Alien'" end class Person < ActiveRecord::Base has_many :widget_groupings, :as => grouper has_many :widgets, :through => :widget_groupings end …

11
Ruby on Railsの特定のActiveRecordクエリによって生成されるSQLを確認するにはどうすればよいですか
特定のActiveRecordクエリが生成するSQLステートメントを見たいのですが。クエリが発行された後、ログからこの情報を取得できることを認識していますが、ActiveRecordクエリで呼び出すことができるメソッドがあるかどうか疑問に思っています。 例えば: SampleModel.find(:all, :select => "DISTINCT(*)", :conditions => ["`date` > #{self.date}"], :limit => 1, :order => '`date`', :group => "`date`") irbコンソールを開き、このクエリが生成するSQLを表示するメソッドを最後に追加しますが、必ずしもクエリを実行するわけではありません。

3
ArelとRailsでLIKEクエリを行う方法は?
私は次のようなことをしたいです: SELECT * FROM USER WHERE NAME LIKE '%Smith%'; アレルでの私の試み: # params[:query] = 'Smith' User.where("name like '%?%'", params[:query]).to_sql ただし、これは次のようになります。 SELECT * FROM USER WHERE NAME LIKE '%'Smith'%'; Arelはクエリ文字列 'Smith'を正しくラップしますが、これはLIKEステートメントであるため機能しません。 ArelでLIKEクエリを実行するにはどうすればよいですか? PSボーナス-実際には、名前と説明の両方のテーブルの2つのフィールドをスキャンして、クエリに一致するものがないか確認しています。それはどのように機能しますか?


3
ActiveRecordの結果をハッシュの配列に変換する方法
検索操作のActiveRecord結果があります。 tasks_records = TaskStoreStatus.find( :all, :select => "task_id, store_name, store_region", :conditions => ["task_status = ? and store_id = ?", "f", store_id] ) この結果を次のようなハッシュの配列に変換したいと思います。 [0] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" } [1] -> { :task_d => 10, :store_name=> "Koramanagala", :store_region=> "India" } [2] -> { :task_d => …



4
Rails-関連の存在を検証しますか?
私は別のモデルBへの「has_many」関連付けを持つモデルAを持っています。Aへの挿入にはBへの少なくとも1つの関連レコードが必要であるというビジネス要件があります。これが真であることを確認するために呼び出すことができるメソッドはありますか、または、カスタム検証を記述する必要がありますか?


4
熱心な負荷ポリモーフィック
Rails 3.2を使用して、このコードの何が問題になっていますか? @reviews = @user.reviews.includes(:user, :reviewable) .where('reviewable_type = ? AND reviewable.shop_type = ?', 'Shop', 'cafe') このエラーが発生します: 多態的な関連付けを熱心に読み込めません:reviewable reviewable.shop_type = ?条件を削除すると動作します。 reviewable_typeand reviewable.shop_type(これは実際にはshop.shop_type)に基づいてフィルタリングするにはどうすればよいですか?

5
オブジェクトの配列をActiveRecord :: Relationに変換する
オブジェクトの配列がありますIndicator。それをと呼びましょう。def self.subjectsこの配列でインジケータークラスメソッド(さまざまなもの、スコープなど)を実行したいと思います。オブジェクトのグループでクラスメソッドを実行する唯一の方法は、それらをActiveRecord :: Relationにすることです。そのため、to_indicatorsメソッドをに追加することにしましたArray。 def to_indicators # TODO: Make this less terrible. Indicator.where id: self.pluck(:id) end 時々私はこれらのスコープのかなりの数をチェーンして、クラスメソッド内で結果をフィルタリングします。したがって、ActiveRecord :: Relationでメソッドを呼び出しても、そのオブジェクトにアクセスする方法がわかりません。私はそれを通してその内容にたどり着くことができるだけですall。しかしall、配列です。それで、その配列をActiveRecord :: Relationに変換する必要があります。たとえば、これはメソッドの1つに含まれています。 all.to_indicators.applicable_for_bank(id).each do |indicator| total += indicator.residual_risk_for(id) indicator_count += 1 if indicator.completed_by?(id) end これは2つの質問に要約されると思います。 オブジェクトの配列をActiveRecord :: Relationに変換するにはどうすればよいですか?where毎回行うことはできません。 def self.subjectsActiveRecord :: Relationでtypeメソッドを実行するとき、そのActiveRecord :: Relationオブジェクト自体にどのようにアクセスしますか? ありがとう。明確にする必要がある場合はお知らせください。

14
なぜすべてのアクティブレコードが嫌いですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 8年前に閉鎖。 OOPについてますます学び、さまざまなデザインパターンを実装し始めると、人々がActive Recordを嫌うケースに戻ってきます。 多くの場合、(Twitterを主な例として引用して)うまくスケールしないと言われますが、実際にうまくスケールしない理由を実際に説明する人はいません。および/または短所なしでARのプロを達成する方法(類似しているが異なるパターンを介して?) うまくいけば、これがデザインパターンに関する神聖な戦争にならないことを願っています-私が知りたいのは、****具体的に**** Active Recordの問題点だけです。 うまくスケーリングしない場合は、どうしてですか? 他にどんな問題がありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.