我正在努力为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"
您对如何实现这一点有什么想法吗? 提前谢谢!
答案 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 %>