Я использую Rails 3 beta 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
В Players_Controller
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
Я пытаюсь распечатать все предметы, связанные с игроком, и для каждого предмета вывести значения «Имя», «Стоимость», «Описание», «Итого» и «Торгуемые».
Когда я вызываю @player_items в items.html.erb, я могу получить доступ только к атрибутам, связанным с моделью элемента, а не к любым атрибутам, связанным с моделью PlayersItem.
Я пытаюсь получить доступ к атрибутам из модели items и модели Players_items в одном и том же «вызове», похожем на оператор соединения SQL, подобный этому
SELECT * FROM players_items INNER JOIN items ON players_items.item_id=items.id
WHERE players_items.player_id = "@player"
Возможно ли это?