Ruby on rails 如何在rails find方法中获取第一个类别id
我的控制器中有以下内容Ruby on rails 如何在rails find方法中获取第一个类别id,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-4,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 %>" /> 如何在隐藏字段中获取
@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'
@posts
是一个数组。您不能对Post数组调用Post
方法。您需要从要调用该方法的数组中选择一个post。要获得第一个,您可以使用@posts[0]
或@posts.first
。现在您有了一篇文章,您可以询问其类别id:
@category = @posts.first.category_id
也就是说,您在
params[:id]
上已经有了相同的值,那么为什么不使用它呢?我只是想知道为什么不使用params[:id]也是一样的。