0
@post = Post.first.comments.build(content: "bla", user: @user)
を検索し、@user.comments
で検索すると、何も表示されません。しかし、私が@post.comments
でそれを行うとき、それはコメントを記載します。 @user.comments
と@post.comments
のコメントを表示するにはどうすればよいですか?Rails 5:via 2モデルでモデルを表示するにはどうすればよいですか?
class Post < ApplicationRecord
belongs_to :user
has_many :comments
end
私のユーザモデル
class User < ApplicationRecord
has_many :posts
has_many :comments
end
コメントモデル
class Comment < ApplicationRecord
belongs_to :user
belongs_to :post
end
'.build'は新しいレコードをインスタンス化するだけで、レコードをDBに保存しません。 '.new'のエイリアスです。だから、 '@ user.comments'を実行すると、データベースに問い合わせるだけで、メモリで作成した新しいレコードは気にしません。 – max
'@comment = Post.first.comments.create(content:" bla "、user:@user);一方、@comment == @ user.comments.last'は、あなたが探しているものを達成します。 – max
thx @maxそれはうまくいったが、なぜ 'build'がうまくいかなかったのか分からない。 – chaosfirebit