如何在rails find方法中获取第一个类别id

时间:2013-11-02 04:06:54

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我的控制器中有以下内容

@posts = Post.where(category_id: params[:id]).paginate(page: params[:page], per_page: 20).to_a

我需要获取类别ID,所以我尝试了

@category = @posts.category_id.first

我在视野中使用了它

<input type="hidden" value="<%= @category %>" />

如何在隐藏字段中获取ID并将错误视为

  

未定义的方法`category_id'

1 个答案:

答案 0 :(得分:2)

@posts是一个数组。您无法在一系列帖子上调用Post方法。您需要从要调用该方法的数组中选择一个帖子。要获得第一个,您可以使用@posts[0]@posts.first。既然你有帖子,你可以要求它的category_id:

@category = @posts.first.category_id

那就是说,你已经在params[:id]拥有相同的价值,为什么不使用呢?