2

我如何在這裏訪問的商店名稱?@deal實例可以訪問完美的項目名稱,但是當我嘗試訪問店名它給了我我如何訪問has_many:through關係中的屬性?

no method error 'stores' 

我怎麼存儲實例訪問商店的名字嗎?這裏是在code.Thank你提前

控制器

def show 
    unless session[:city_id].nil? || session[:city_id].blank? 
    @city = City.find(session[:city_id]) 
    @[email protected] 
    @[email protected] 
end 

查看/顯示

<% @deal.each do |deal| %> 
<%=deal.item_name %> 
<%end%> 

<%[email protected]_name %> 

車型

class Store < ActiveRecord::Base 
    has_many :deals ,:through =>:store_deals 
    has_many :store_deals 
end 

class Deal < ActiveRecord::Base 
    has_many :stores ,:through =>:store_deals 
    has_many :store_deals 
end 

class StoreDeal < ActiveRecord::Base 
    belongs_to :store 
    belongs_to :deal 
end 

回答

2

@deal是最有可能的交易的數組。 @ city.deals意味着你可以在每個城市有多個交易。當您嘗試做

@[email protected] 
@[email protected] 

嘗試這樣的事情西港島線會導致一個問題:

@deals = @city.deals 
@stores = @deals.collect(&:stores) 
+0

我只是想給我的....你有一個零對象時,你沒想到吧! 您可能預期了Array的一個實例。 評估nil.collect – katie

+0

時發生錯誤,此處的命名可能會令人困惑,因爲從{at}交易到{at}交易發生了變化,請確保您已將所有來電轉換爲{at}交易,如果已更改控制器中的變量(註釋中的@符號與facebook類似,所以這就是爲什麼我有{at})。 –

+0

也許我應該問一下.collect(&:stores)返回的是什麼? – katie

相關問題