ActiveRecord .find()方法失败

时间:2014-04-30 20:30:37

标签: ruby-on-rails

我想按名称显示每个类别。我有一个帖子和类别模型,每个帖子只有一个类别。

这有效:<% @category = Category.find(3) %>

此操作失败:<% @category = Category.find(post.cat_id) %>

我的错误:Couldn't find Category with id= ".

我的观点栏:

<% @posts.each do |post| %>
  <%= post.title %>
  <% @category = Category.find(post.cat_id) %>
  <%= @category.category %></td>
<% end %>

1 个答案:

答案 0 :(得分:0)

您不应该在视图中执行<% @category = Category.find(post.cat_id) %>之类的查询。如果您没有以可以调用post.category的方式配置关系,则应该向Post模型添加一个方法,例如:

def get_category
  Category.find(self.category_id).category
end

然后,您可以从视图中调用post.get_category,它将为您处理查询。