読者です 読者をやめる 読者になる 読者になる

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

プログラミングとウェブ解析をやっています。Googleアナリティクス好きなRuby on Rails エンジニアです!

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

Rails

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

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

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

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

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

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

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

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

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

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

※routesの指定も必要。

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