我需要按类别显示产品列表。我当时想建立一个以类别为关键的has,并以该类别的价值来构建该类别中所有产品的清单。这样可以实现吗?
这项工作吗?
@products = Product.all
@categories = @products.uniq.pluck(:category)
@products_by_category = Hash.new
@categories.each do |category|
@products_by_category[:category] = Product.where(:category => category)
end
我用它在我的视频中显示以上哈希值:
<% @products_by_category.each do |key, value| %>
<th> <%= key %> <th>
<% value.each do |product| %>
<tr>
<td><%= product.title %></td>
<td><%= product.category %></td>
<td><%= product.rating %></td>
<td><%= link_to 'Show', product, :class => "btn btn-primary"%></td>
<td><%= link_to 'Edit', edit_product_path(product), :class => "btn btn-primary" %></td>
<td><%= link_to 'Destroy', product, method: :delete, data: { confirm: 'Are you sure?' }, :class => "btn btn-primary" %></td>
</tr>
<% end%>
<% end %>
但是在显示而不是类别名称中,我只得到字符串文字“ category”(<th> <%= key %> <th>
似乎打印了字符串文字“ category”而不是类别的值)
答案 0 :(得分:1)
应该可以,但是有一种更简单的方法
@RequestMapping(value = "/html/login",method = RequestMethod.POST)
public ModelAndView getPersonalPage(@RequestParam("userName") String username,
@RequestParam("password") String password)
{
if(userService.authenticateUser(username, password) == true)
{
ModelAndView modelView = new ModelAndView();
modelView.setViewName("home");
modelView.addObject("user", username);
modelView.addObject("iframe_src",
"personal.html");
return modelView;
}
else
{
return null;
}
}
答案 1 :(得分:0)
使用@products_by_category[category]
代替@products_by_category[:category]
对我来说非常合适!感谢@Vasilisa提供此解决方案!