Rails - 如何显示一个嵌套属性

时间:2014-11-04 15:47:41

标签: ruby-on-rails ruby nested-attributes

我有一个新问题,我创建了一个网站,我上传了很多图像,使用嵌套属性和多态表,在我的index.html中我想只显示一个图像,但我无法找到。但我是铁杆新手。

photography.rb

class Photography < ActiveRecord::Base
    validates :title, :description, presence: true
    belongs_to :user
    has_many :images, as: :imageable, dependent: :destroy
    accepts_nested_attributes_for :images, :reject_if => lambda { |a| a[:img_str].blank? }, :allow_destroy => true
end

image.rb

class Image < ActiveRecord::Base
    belongs_to :imageable, polymorphic: true

    mount_uploader :img_str, AssetUploader
end

index.html.erb

<% for photo in @photo %>
    <%= link_to photo.title, photography_path(photo) %>
    <% photo.images.each do |images| %>
        <%= images.img_str %>
    <% end %>
<% end %>

使用for方法我显示所有图像,尝试添加.first,但是说undefined method first for 5:Fixnum.我认为我必须创建一个帮助方法,但我不确定。谁能帮我?。感谢

1 个答案:

答案 0 :(得分:1)

尝试:

<% for photo in @photo %>
    <%= link_to photo.title, photography_path(photo) %>
    <%= photo.images.first.img_str if photo.images.any? %>
<% end %>

此外,for在ruby中很少使用,而是:

<% @photos.each do |photo| %>