グロースエンジニアのブログ

Ruby on Rails エンジニアです!開発に当たって勉強したことをまとめていこうと思います!

form_for で追加、更新するモデルはコントローラーでの変数指定で決まっている 〜Ruby on Rails4〜

当たり前のことなのかもしれませんが、自分でプログラミングしていて分からなかったのでメモします。

コントローラに対応したモデルがあって、そのコントローラからモデルを操作しているかと思いますが、別のモデルを操作するときにそのモデルをどうやって指定しているのかがわからなかった。

モデルの指定はコントローラ側でできる

どうやってやるのかな〜と思ってとりあえずいろいろ書いていて気づいたことは、コントローラ側でモデルを指定してあげればOKってこと。

例えば、postsコントローラでPostモデルを操作することはイメージできる。

で、postsコントローラからCommentモデルを操作したい場合は、以下のような感じでpostsコントローラに記載すれば、あとは勝手にRails側でCommentモデルに追加・更新してくれるみたい。

@comment = Comment.new
#Commentの記述のところで操作するモデルを指定している

これって当たり前のことなんですかね??

あと、これとは別にCommentコントローラ側でcreateとupdateを作成しておく必要があります。

これもRails側で送信されてきた内容に合わせて自動でやってくれるみたい。

※routesの指定も必要。

わからないことだらけですが、こうやって「何でそうなるのか?」がわかってくると楽しいですね〜〜♪