我有一个新问题,我创建了一个网站,我上传了很多图像,使用嵌套属性和多态表,在我的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.
我认为我必须创建一个帮助方法,但我不确定。谁能帮我?。感谢
答案 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| %>