Rails 4 - 在表中显示依赖模型

时间:2015-08-05 01:33:02

标签: ruby-on-rails ruby ruby-on-rails-4

我有一个文章模型,带有依赖模型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 

提前感谢您的帮助。

1 个答案:

答案 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| %>.