Rails 3 ベータ 4 を使用しています。
私は次のモデルを持っています:
class Player < ActiveRecord::Base
has_many :players_items, :dependent => :destroy
has_many :items, :through => :players_items
end
class PlayersItem < ActiveRecord::Base
belongs_to :player
belongs_to :item
end
class Item < ActiveRecord::Base
has_many :players_items, :dependent => :destroy
has_many :players, :through => :players_items
end
プレーヤー_コントローラーで
def items
@player = Player.find(params[:id])
@player_items = @player.items
end
私は次の属性を持っています
--Items Model--
Item_id:Integer
Name:String
Cost:Integer
Description:Text
--PlayersItem Model--
Item_id:Integer
Player_id:Integer
Total:Integer
Traded:Integer
プレーヤーに関連付けられたすべてのアイテムを印刷しようとしています。各アイテムについて、「名前」、「コスト」、「説明」、「合計」、および「取引」の値を印刷します。
items.html.erb で @player_items を呼び出すと、Item モデルに関連付けられた属性にのみアクセスでき、PlayersItem モデルに関連付けられた属性にはアクセスできません。
このような SQL Join ステートメントに似た同じ「呼び出し」で、アイテムモデルとplayers_itemsモデルの両方から属性にアクセスしようとしています
SELECT * FROM players_items INNER JOIN items ON players_items.item_id=items.id
WHERE players_items.player_id = "@player"
これは可能ですか?