我有一个文章模型,带有依赖模型Photocup。每个Photocup实例都附有一个图像(使用paperclip / imagemagick)。我按照rails指南添加第二个模型,注释与文章相关联。
http://guides.rubyonrails.org/getting_started.html#adding-a-second-model
工作正常。但是我想要更多地控制Photocups的显示方式。我在Views / Article中创建了部分_gallery.html.erb。画廊部分看起来像这样:
Photo Gallery
<table class="table2">
<%= render @article.photocups %>
</table>
Views / Photocup中的_photocup.html.erb看起来像这样&#34;
<td>
<%= photocup.label %>
<br>
<%= image_tag photocup.image(:small) %>
<br>
<%= link_to 'Remove Photo', [photocup.article, photocup],
method: :delete,
data: { confirm: 'Are you sure?' } %>
</td>
工作正常,但我无法弄清楚如何连续添加!
无论如何都要显示第一条的Photocups,看看用非依赖模型做的方式?例如,索引页通常会有类似这样的内容&#34;
<table>
<tr>
<th>Title</th>
</tr>
<%= @photocups.each do |photocup| %>
</tr>
<td><%= photocup.title %></td>
<% end %>
</table>
这可以在文章的show.html.erb页面上以某种方式完成吗?如果我在Views / Photocup中创建了一个部分,可以这样做吗?
如果重要,路线如下:
resources :articles do
resources :comments
resources :photocups
get 'gallery'
get 'showall'
get 'feature', on: :collection
end
提前感谢您的帮助。
答案 0 :(得分:2)
它可以在articles#show
页面上。如果你的关联正确完成,你有一个:
#article.rb
Class Article > ActiveRecord::Base
has_many :photocups
end
和
#photocup.rb
Class Photocup > ActiveRecord::Base
belongs_to :article
end
您必须在Articles控制器中的show action下声明一个实例变量。它看起来像这样:
#articles_controller.rb
def show
@article=Article.find(params[:id])
@photocups=@article.photocups
end
然后在show视图中使用示例索引视图的代码,它应显示您正在寻找的行。
另外,请注意,这一行:
<%= @photocups.each do |photocup| %>
示例索引页面中的不需要=
。这些应保留给您希望用户在视图中看到的内容,它应该是:
<% @photocups.each do |photocup| %>.