0

我通過一個表循環,從而得到一些值,然後我試圖循環另一個表以獲得更多項目:Rails:未定義的方法從沒有記錄的循環?

業務表看起來像這樣

id  name   
1   Business 1  
2   Business 2 

業務照片表:

id  default_pic  business_id 
1   blahblah.jpg  1 

所以,如果我試圖循環:

<% @b.each do |b| %> 
    <%= b.name %> 
    <%= b.business_photos.default_pic %> 
<% end %> 

我得到undefined method defaul_pic?我相信因爲第二次循環後沒有更多的記錄,當它得到Business 2。什麼是軌道檢查記錄關聯的方式,所以我不會得到這個錯誤?

這是我的模型的樣子:

class Business < ActiveRecord::Base 
    has_many :business_photos 
end 

class BusinessPhoto < ActiveRecord::Base 
    belongs_to :business 
end 
+0

什麼是@b?你能提供完整的視圖文件嗎?並請提供完整的錯誤。 – Kuldeep

回答

1
<%= b.business_photos.default_pic if defined?(b.business_photos.default_pic) %> 

這是一個條件,如果我們每一次使用的語句,我們要包括的變量&不確定是否它的設置。我一直在尋找一些能夠防止錯誤通過.each顯示的東西(會從視圖中拿出這麼多的邏輯),但是我還沒有找到一個

+0

這工作。也許別人會有關於.each的答案 – hellomello