2014-10-28 66 views
0

我是新的Rails,我做了一個嵌套屬性的模型,完美地工作。但是在顯示所有嵌套屬性的時候,我得到一個錯誤。Rails 4 - 如何顯示所有嵌套的屬性?

模型

class Slide < ActiveRecord::Base 
    belongs_to :user 
    has_many :images, :dependent => :destroy 
    accepts_nested_attributes_for :images, :reject_if => lambda { |a| a[:img_str].blank? } 
end 

class Image < ActiveRecord::Base 
    belongs_to :slide 
    validates :img_str, presence: true 
    mount_uploader :img_str, AssetUploader 
end 

slides_controller

def index 
    @slide = Slide.all 
end 

滑動/視圖/索引

<% @slide.each do |slide| %> 
    <%= slide.images.img_str %> 
<% end %> 

滑軌顯示此:

undefined method `img_str' for #Image::ActiveRecord_Associations_CollectionProxy:0x00000003e98dd0 

我如何才能使與圖像模型的關聯?

+0

你可能想急於載入圖像在'index'方法幻燈片避免N + 1個查詢:'@slide =幻燈片.includes(:圖像).all'。 – Surya 2014-10-28 20:01:47

回答

0

images是圖像對象的集合。你在做什麼就好調用圖像對象的屬性圖像的數組對象

<% @slide.each do |slide| %> 
    <%slide.images.each do |image|%> 
    <%= image.img_str %> 
    <%end%> 
<% end %> 
+0

其實你不需要在'<%= slide.images.each do | image |%>中使用'=',它可以只是'<%slide.images.each do | image | %>'。 – Surya 2014-10-28 20:01:03

+0

是的,這是一個錯誤 – usha 2014-10-28 20:02:46

+0

@ vimsha是的!完美的作品,謝謝! – 2014-10-29 12:12:48