2012-02-26 6 views
0

users/id/micropostsへのリンクを作成する必要があります。ここで、idはユーザーIDです。私はlink_toでどうすればいいのだろうと思っていましたか?Ruby on Railsでユーザー/ ID /マイクロポストにリンクする方法は?

HTMLコードは、私はしばらくの間使用していますです:

<strong><a href="https://stackoverflow.com/users/<%= @user.id %>/microposts">Microposts</a></strong> <%= user.microposts.count %> 

次のレンダリングはどの:

ネストされたルートであろうと、あなたが正しくあなたのルートを設定していると仮定すると
<a href="https://stackoverflow.com/users/1/microposts">Microposts</a> 

答えて

0

、あなたはこのようなものが必要です:

match '/users/:id/microposts' => 'microposts#index_by_user', :as => :microposts_by_user 

を、ビューで、あなたはこのように行うことができます。

<%= link_to "Microposts", microposts_by_user_path(@user) %> 
+0

ありがとう!これはうまくいった。私は 'index_by_user'の代わりに' index'アクションを使いました。これはあまり慣れないのですか? –

+0

実際、それは視点です –

0

マイクロポストの場合、レール3では

resources :users do 
    resources :microposts 
end 

あなたの意見では、lin追加:あなたは

<%= link_to "Microposts", user_microposts_path(user) %> 

これはCURRENT_USERかもしれませんができk_toあなたはマイクロポストを好きなユーザーオブジェクト、@user ...、それは

@users.each do |user| 
    <%= link_to "Microposts", user_microposts_path(user) %> 
end 

OR

<%= link_to "Microposts", user_microposts_path(current_user) %> 

EDITからかもしれませんユーザーオブジェクトでは、私はパスインしていくつかの例を忘れていた。 routes.rbをで

+2

私はあなたが 'User'オブジェクトを渡す必要があると思いますこの場合、 'user_microposts_path'に変換します。 – Brandan

+0

私はあなたのソリューションを試しましたが、私はこのエラーを取得しました.'MicropostsController#index - IDなしでユーザーを見つけることができませんでした 'というエラーメッセージが表示されます。私は@ nitecoderのソリューションを使用する必要があると思いますか?どうやって教えてくれますか? –

+0

Brandonが正しいです、私はここで間違いを犯しました。 – nitecoder

関連する問題