###前提・実現したいこと
1対多の関係で同時に作成/更新するやrailsチュートリアルの一対多の記事を参考にして作業を進めていますが、エラーが発生して躓いています。
コントローラーのnewで
12行 @site = Site.new
13行 site.sites.build
これを書いて確認してみたらエラーが発生しました。
ユーザーと複数の投稿を結び付けたいのですが、初心者なのでよくわかりません。
関係があるかわかりませんが、13行のbuildやsitesを消して確認すると正常に動作しています。
###発生している問題・エラーメッセージ
undefined method `sites' for #<Site:0x611ebd8> app/controllers/sites_controller.rb:13:in `new'
###該当のソースコード
class SitesController < ApplicationController before_action :set_site, only: [:edit, :update, :destroy] def index @site = Site.all end def new @site = Site.new @site.sites.build end . . . スキーマ create_table "sites", force: :cascade do |t| t.string "name" t.string "link" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.integer "user_id" migrateフォルダの中 class AddUserIdToSites < ActiveRecord::Migration def change add_column :sites, :user_id, :integer end end sitesのモデルクラス class Site < ActiveRecord::Base belongs_to :user end
###試したこと
ユーザーに対応するマイグレーションを作り、スキーマにユーザーIDを指定してコントローラのパーミットにuser_idを追加させました。
###補足情報(言語/FW/ツール等のバージョンなど)
Rails, Windows
回答1件
あなたの回答
tips
プレビュー