を通じて、私はにhas_manyを使用しています:を通じてパススルー list_items
と呼ばれるを使用して、2つのモデル間の関連付けを作成するには:ネストされた:has_manyの、:属性
user.rb:
has_many :list_items
has_many :wishes, :through => :list_items
wishe.rbを:
has_many :list_items
has_many :users, :through => :list_items
list_item.rb:
belongs_to :user
belongs_to :wish
これは素晴らしいことですが、(正確には current_user
)の基準に基づいてアクセスしたいモデル wishes
の追加属性が list_items
にあります。私は現在、このようなコードを使用してこの属性にアクセスすることができます。
wishes_controller.rb:
@wishes = current_user.wishes
index.html.haml:
-wish.list_items.each do |list_item|
-if list_item.user_id == current_user.id
=list_item.list_position
しかし、私はあります賭けている、正常に動作しますこれを行うもっとエレガントな方法は、 wishes.list_position
(current_user idに基づいて適切なlist_positionをプルする)のようにアクセスできることです。私はhereとhere(そして多くの追加の場所)を見てきましたが、私はこれらの概念をプロジェクトに翻訳できませんでした。
は完璧に働きました!このコードはlist_position(list_items.list_position)を選択し、それぞれのwishに対してlist_position(list_positionとして)を作成しますか? –
ええ、欲しいものを呼び出すことはできますが、希望のオブジェクトにも 'list_position'属性を持たない限り、それはトリックを行うべきです –
あなたの助けてくれてありがとう! –