投稿したcurrent_user
にすべての新しい投稿を割り当てたいと思います。各投稿に「user_id」の代わりに「user_first_name」を表示する方法
私は投稿の一番上に投稿している人のuser_id
を表示することができましたが、user_first_name
でプロセスを適用しようとすると機能しません。私はそれぞれ@post.user_id
を表示しています。各投稿の@post.user_first_name
を表示するにはどうすればよいですか?
これはFeed.controllerです:
before_action :require_user, only: [:index, :feed]
def feed
@posts = Post.all.order(created_at: :desc)
@post = Post.new
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
@post.user_id = current_user.id
if @post.save
redirect_to '/'
else
render 'new'
end
end
private
def post_params
params.require(:post).permit(:content, :user_id)
end
これはCreatePostモデルです:
def change
create_table :posts do |t|
t.text :content
t.integer "user.id"
t.timestamps null: false
end
end
end
これがでCreateUserモデルです:
def change
create_table :users do |t|
t.string :first_name
t.string :last_name
t.string :email
t.string :password_digest
t.timestamps
end
end
end
'user_first_name'はどこに定義されていますか?データベースに 'fist_name'カラムがあった場合は' user.first_name'となります。だからあなたのユーザーモデルを表示する必要があります。ちなみに、 "CreatePost Model"は本当に1つのファイルですか?そうであれば、間違っています。 'belongs_to:user'は' app/models/post.rb'に入り、 'def change'パーツは移行に入ります。 –
@ post.user.first_nameを定義しようとしていますか?私はCreateUserモデルを追加していて、belongs_toとhas_manyをあなたに変更しました。 – Yohan
それは問題だったよ! belongs_toとhas_manyが間違った場所にあった^^今は動作します。ありがとうございました !!! – Yohan