私はRuby on Rails 3.0.7を使用していますが、has_many : through
動的条件を設定したいと思います。`has_many:through`レコードアソシエーションの動的条件
:私も関係を作成したユーザーのid
を表しcreated_by_user_id
列を(他の列はarticle_id
とcategory_id
ある)持って、関連Article::Categories::ArticleRelationship
データベーステーブルで
class Article < ActiveRecord::Base
has_many :article_category_relationships,
:class_name => 'Article::Categories::ArticleRelationship',
:foreign_key => 'article_id',
:autosave => true,
:dependent => :destroy
# Here should be the dynamic condition statement (read below for more
# information about this)
has_many :article_categories,
:through => :article_category_relationships,
:source => :article_category,
:dependent => :destroy
end
。
したがって、ユーザーに関連する記事カテゴリを取得するには、上記のレコード関連付けコードで、:article_category_relationships
にフィルタリングしたいユーザーの動的条件を渡すことでid
値を渡します。そうでない場合、id
の値を渡さないと、デフォルト値は@article.article_categories
コードを使用してすべての記事カテゴリを取得できるようにする必要があります。
可能でしょうか?もしそうなら、レコード協会のステートメントでそれをどのようにコード化できますか?
'article_category_relationships'テーブル名をモデルファイルに直接入力するのは一般的な方法ですか? – Backo
申し訳ありませんが、あなたが何を意味するのか分かりませんか?あなたは説明できますか? – polarblau
私は、データベーステーブルの名前をクラス\モデルコードの中に直接置くことは何度も見てきました(私にとっては、初心者です。それは一般的な慣行ですか?つまり、そのアプローチは一般的に使用されていますか? – Backo