我的控制器中有以下内容
@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'
答案 0 :(得分:2)
@posts
是一个数组。您无法在一系列帖子上调用Post
方法。您需要从要调用该方法的数组中选择一个帖子。要获得第一个,您可以使用@posts[0]
或@posts.first
。既然你有帖子,你可以要求它的category_id:
@category = @posts.first.category_id
那就是说,你已经在params[:id]
拥有相同的价值,为什么不使用呢?