0

投稿テーブルのすべての投稿をid=5と表示したい.....。

コントローラ

user_controller.rb

class UsersController < ApplicationController

# other methods are also present...

  def profile
    uid=session[:userid]  #session contains userid,it is stored in uid....Eg:5
    @post=Post.find_by_userid(uid) #Display all posts with userid=5 in Post table.
  end

end

見る

profile.html.erb

    <h1>In Profile</h1>
    <%=session[:test]%>
    <% @post.each do |p|%>
    <%= p.title%>
    <%= p.body%>
    <%= p.tag%> 
    <%end%>

実行すると、次のようなエラーが発生します。/Users/Vineeth/QA4/app/views/users/profile.html.erbを表示しています。

エラーを修正するのを手伝ってください......ありがとう。

4

2 に答える 2

1

Post.find_by_userid(uid)と同じでPost.where(:userid => uid).first、1 つのレコードのみを返します。

使用する必要がありますPost.where(:userid => uid)

于 2012-06-21T05:35:04.663 に答える
0

あなたが使用しPost.find_by_user(uid)ているのは、反復できるものではありません。単一のレコードのみを返します。

次のように、コレクションを返すものを使用しますPost.where(:userid => uid)

于 2012-06-21T05:34:10.230 に答える