2014-11-16 90 views
0

我希望能夠顯示僅屬於當前用戶的帖子。
以下是我目前的做法。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

你需要爲此設置一個嵌套的資源。

在你的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