現在投稿のページで、投稿を投稿したユーザーの名前を表示したいと思っていますが、#User:0x00007fdfdcfe8350さんが投稿しました。のような意味不明な文字列として表示されてしまいます。
postモデルとuserモデルがあり、それぞれカラムは以下のようになっています
create_table "posts", force: :cascade do |t|
t.text "content"
t.integer "user_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "users", force: :cascade do |t|
t.string "name"
t.string "email"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
postのshow.html.erbは以下のようになっています。
<% @posts.each do |post| %> <div class="posts-index-item"> <strong>『<%= post.content %>』</strong> <%= post.user.name %>さんが投稿しました。
アクションはこうです
def show @posts = Post.where(aaa_id: @aaa.id).paginate(:page => params[:page], :per_page => 10).order(created_at: :desc) @current_user = User.find_by(id: session[:user_id]) end end
なのに名前が表示されません。
何がいけないのでしょうか?
モデルでは
class User < ApplicationRecord
has_many :posts
end
class Post < ApplicationRecord
belongs_to :user
def user
return User.find_by(id: self.user_id)
end
end
としています
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/21 10:00