回答編集履歴
1
フォームオブジェクトについて解説を追加
answer
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
名前からしてフォームオブジェクトっぽいのは MessageTagForm ですが、これは Message と Tag を多対多で結合するために使用されるリレーションテーブルのモデルなので、名称的には MessageTag とかになるのが普通。
|
10
10
|
MessageTag が内容見るからにフォームオブジェクトっぽいけど、なぜか edit.html.erb のフォームで使われていない。update のフォームで使われているか分からないけど update_message_params 見る限り使われていなさそう。
|
11
|
+
フォームオブジェクトというのは文字通り、Webページのフォームを表現するために使われるのが一般的で、実際そうした方が使いやすいです。Message と Tag を両方いっぺんに更新したいという目的にフォームオブジェクトを導入するのは良いやり方だと思いますが、チグハグになっちゃっているので整理した方が良い状態です。
|
12
|
+
このまま強引に進めると、今回にみたいに想定外の動作が起きたときに、さらに何が悪いのか分からなくなってきます。
|
11
13
|
|
12
14
|
いっぺんにやりすぎて混乱しちゃってるように見えるので、まずは Message だけを新規追加、更新するところから初めてはどうでしょうか?
|
13
15
|
その上で、多対多の関係にあるタグ付けの機能を足していきましょう。
|