根据参数选择图像

时间:2014-08-04 19:39:46

标签: ruby-on-rails ruby scope carrierwave

我认为这是相当直接但不确定如何实施。

我有一个像这样设置的模型

create_table "portfolio_images", force: true do |t|
  t.integer  "portfolio_id"
  t.string   "status"
  t.string   "image"
  t.datetime "created_at"
  t.datetime "updated_at"
end  

在我的表单中,您可以为每个图像的状态选择“之前”或“之后”。

如果我在我的视图中选择图像

<%= image_tag(i.image_url(:thumb)) %>

但只想选择状态为“之前”的图像,我该如何选择?

如果我要创建一个范围

class PortfolioImage
  scope :portfolio_image_before, -> { where(status: 'Before') }
end

这会起作用,我怎么能在我看来使用它?或者有更好的方法吗?

由于

修改

第二个想法我试过这个

<% p.portfolio_images.each do |i| %>
  <% if i.status == 'Before' %>
    <td><%= image_tag(i.image_url(:thumb)) %></td>
  <% end %>
<% end %>

但这是为了hacky吗?

1 个答案:

答案 0 :(得分:1)

试试这个

<% p.portfolio_image.portfolio_image_before.each do |i| %>
  <%= image_tag(i.image_url(:thumb)) %>
<% end %>