经过许多铁道教程后,这是我的第一个个人项目
我有两个模型,一个控制顶级记录(lesson.rb),另一个通过carrierWave(attachment.rb)控制相关图像。我正试图遍历链接的图像并用帖子显示它们。
到目前为止,我的资产创建工作正在进行,但我很难弄清楚如何在show.html.erb中显示连接的图像。请原谅我,如果答案很容易愚蠢,我已经广泛搜索了这篇文章,虽然我发现了许多结果,但我仍然很难将这些方法应用到我的项目中。
提前感谢您的帮助。
/models/lesson.rb
class Lesson < ActiveRecord::Base
attr_accessible :content, :title, :attachments_attributes
has_many :attachments, :dependent => :destroy
accepts_nested_attributes_for :attachments
validates :title, :content, :presence => true
validates :title, :uniqueness => true
end
/models/attachment.rb
class Attachment < ActiveRecord::Base
attr_accessible :image
belongs_to :lesson
mount_uploader :image, ImageUploader
end
/controllers/lessons.rb(显示方法)
def show
@lesson = Lesson.find(params[:id])
end
/views/lessons/show.html.erb
<div class="body sixteen columns">
<h2><%= @lesson.title %></h2>
<div class="sixteen columns images">
<% for image in @lesson.attachment %>
<%= image_tag @lesson.attachment.image_url.to_s %>
<% end %>
</div>
<p><%= simple_format(@lesson.content) %></p>
</div>
答案 0 :(得分:0)
两件事:使用each
来迭代附件,并将attachments
称为复数而不是单数。
<% @lesson.attachments.each do |attachment| %>
<%= image_tag attachment.image_url.to_s %>
<% end>
另一件好事是:
@lesson = Lesson.includes(:attachments).find(params[:id])
如果在从数据库中检索课程时使用includes
,它将仅触发一个SQL SELECT查询而不是一个+该课程中的附件数量。有关详细信息,请参阅http://guides.rubyonrails.org/active_record_querying.html#eager-loading-associations。