Rails:在image_tag中的Paperclip gem / where-clause

时间:2016-03-15 15:22:11

标签: ruby-on-rails

我正在努力为image_tag添加.where-clause。目标是在current_user.brand等于现有品牌时显示品牌表中的品牌形象。

以下是我的观点中的代码:

<%= image_tag ((Brand.where(company: current_user.brand)).logo.url(:thumb)) %>

但这不起作用。我收到了这个错误:

  

未定义方法`logo'for Brand :: ActiveRecord_Relation:0x007ffd06dc2458

在品牌索引页面上,我可以用以下方式显示徽标:

<% @brands.each do |brand| %>
  <%= image_tag brand.logo.url(:thumb) %>
<% end %>

Brand表的DB方案:

t.string   "logo_file_name"
t.string   "logo_content_type"
t.integer  "logo_file_size"
t.datetime "logo_updated_at"

您对如何实现这一点有什么想法吗? 提前谢谢!

1 个答案:

答案 0 :(得分:2)

  

未定义的方法`logo'for   品牌:: ActiveRecord_Relation:0x007ffd06dc2458

您在 AR关系 上呼叫logo,而不是 单一记录 ,错误也是如此。

相反,你可以定义一个像下面的实例变量

@user_brands = Brand.where(company: current_user.brand)

并迭代它

<% @user_brands.each do |brand| %>
  <%= image_tag brand.logo.url(:thumb) %>
<% end %>