Ruby on Rails - 路由到当前用户的帖子路径

时间:2014-11-16 07:29:56

标签: ruby-on-rails

我希望能够展示仅属于当前用户的帖子 以下是我目前的做法。

控制器

def index
  @user = User.find(params[:id])
  @posts = @user.posts;
end 

查看

<li><%= link_to "Posts", posts_path %></li>

路线

match '/posts',  to: 'posts#index',         via: 'get'

即使我在此用户ID下有帖子记录,我也会收到以下错误

ActiveRecord::RecordNotFound in PostsController#index
Couldn't find User without an ID

我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

您需要为此设置嵌套资源。

在你的routes.rb

resources :users do
  resources :posts
end

然后在您的视图中,您可以将用户传递到路径,如下所示:

<li><%= link_to "Posts", user_posts_path(@user) %></li>

如果使用posts_controller.rb正确调用路径,则@user_id索引操作已设置@user

此处有更多信息:http://guides.rubyonrails.org/routing.html#nested-resources