ぺんぎんのRails日記

ぺんぎん。エンジニア経験ゼロ。Rails勉強中。

【備忘録】アソシエーションで関連付けしたオブジェクトの初期化

モデルで関連付けしたオブジェクトをコントローラで初期化します。
初期化とは、最初の状態を整えること。ここではオブジェクトの作成のことです。

まず、Userモデルを親、Postモデルを子として関連付けします。
user.rb

has_many :posts

post.rb

belongs_to :user

posts_controller.rb

@post = current_user.posts.build(post_params)

・current_userはsorceryのメソッドでログイン中のユーザーの値が入っています
・postsは、モデルで設定されているhas_many :postsによって使えるようになったメソッド。userオブジェクトで使えます
・アソシエーションでオブジェクトを初期化するときはbuildを使います。挙動はnewと同じですが、関連付けされていることが視覚的にわかるようになります。