前提・実現したいこと
投稿した記事にタグをつけられるWebアプリを作成しているのですが「記事 多:多 タグ」の関係性がいまいち理解できません。
Aritcle、Tag modelモデルを作成し中間テーブルを作成し記事のパラメータにaccepts_nested_attributes_forでタグを混ぜてsaveすると自動的に中間テーブルにレコードが作成されるところまではできました。
しかし、既存タグが重複してtagsテーブルに登録されてしまいます。
例:
aritcles
(id:1 aritcle:記事1) (id:2 aritcle:記事2)
tags
(id:1 tag:Java) (id:2 tag:Java)
aritcle_tag
(aritcle_id:1 tag_id:1) (aritcle_id:2 tag_id:2)←この2つ目のレコードのtag_idが1でなおかつtagsに重複するJavaが登録されないでほしい
例でいうと中間テーブル登録時にタグがJavaの記事(Aritcle)であれば中間テーブルへ登録されるタグはすべて1であってほしいのですが、新たに生成されたtagsのidが挿入されてしまいます。
かと言って既存タグだった場合に記事だけを登録しても中間テーブルにレコードが作成されない(?)ためどうすればよいのかわかりません。
それに、has_manyを使って実装したにもかかわらずどうみても多対多ではなく1体1になっているような気がします。(現状、新規レコードのみが中間テーブルへ登録されているため)
そもそも理解が間違っている、参考になる意見・方法・ページなどあれば教えていただけないでしょうか。
該当のソースコード
なし
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/18 12:21
2020/05/18 13:48
2020/05/18 13:53
2020/05/18 13:54