現状: テーブルが二つあり、GenreテーブルとComicテーブルがあります。中間にComicGenreテーブルがあります。(以下、ER図参照) 多対多の関係です。
comics.id = comic_genres.comic_id
genres.id = comic_genres.genres_id
です。
ruby
1#ComicsController 2def create 3 @comic = Comic.new(comic_params) 4 @comic.save 5 @genre = Genre.new(genre_params) 6 @genre.save 7 comicgenre = ComicGenre.new(comic_id: "comic.id", genre_id: "genre.id") 8 comicgenre.save 9end
やりたいこと: リレーションが組まれるためには、Comic.newするたびに、ComicGenreにも同じidがnewされないといけないと考えています。(Genreテーブルとのリレーションをくまなければならない。) しかし、Rails cで見てみると <ComicGenre:0x007fa48c994c78 id: 4, comic_id: 0, genre_id: 0, created_at: Wed, 03 May 2017 03:05:13 UTC +00:00, updated_at: Wed, 03 May 2017 03:05:13 UTC +00:00>, <ComicGenre:0x007fa48c994a98 id: 5, comic_id: 0, genre_id: 0, created_at: Wed, 03 May 2017 03:08:46 UTC +00:00, updated_at: Wed, 03 May 2017 03:08:46 UTC +00:00>] このような感じで、comicgenreに保存はされるのですが、comic_idとgenre_idが0のままで保存されてしまいます。 質問:Comic.newしたタイミングでそのidと同じidがcomicgenreのcomic_idに保存される方法はありますか。(ちなみにGenreはユーザーがラジオボタンで選んで投稿する形になっています。 補足:色々調べた結果、accepts_nested_attributes_forがそれっぽいと考えているのですが、理解を深めるために、一度これは使わない形で書いています。(何もわからず書いても、意味がないと考えているので) 何卒、よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/20 05:17