最初の部分:
アプリ内のすべての投稿を一覧表示するインデックス ページがあります。リンクのタイトルをクリックして、投稿の表示ページにリダイレクトできるようにしたいと考えています。これが私のインデックスページです。
<% provide(:title, "All Posts") %>
<% @posts.each do |post| %>
<div>
<h2><%= link_to post.title.titleize, post %> by <%= post.author.name.titleize %></h2>
<div><%= post.body %></div>
</div>
<% end %>
index
自分のページにアクセスしようとすると、
undefined method `post_path' for #<#<Class:0x007fc6df41ff98>:0x007fc6df436e78>
私のlink_toにあるためだと確信してpost
いますが、正しい場所に移動するためにそこに何を置くかはわかりません。実行rake routes
すると、posts#show アクションが
user_post GET /users/:user_id/posts/:id(.:format) posts#show
だから私は置き換えpost
てみましたuser_post_path(post)
が、その後私は得る
No route matches {:action=>"show", :controller=>"posts", :user_id=>#<Post id: 4, title: "werwef", body: "erfwerfwerf", user_id: 3, created_at: "2013-08-16 20:05:43", updated_at: "2013-08-16 20:05:43">, :id=>nil, :format=>nil} missing required keys: [:id]
何に変更する必要がありますか?
第二部:
投稿を<%= post.author.name.titleize %>
投稿したユーザー名を出力する必要があり、投稿モデルで定義したメソッドから取得しています
def author
User.find(self.user_id)
end
これはこれを行うための最良の方法ですか?メソッドを作成する前に を試しましpost.user.name
たが、うまくいきませんでしたuser
。助けてくれてありがとう。