私のレールアプリケーションでは3つのテーブルがあります。会場、イベント、バンド。 これらは私のモデル別のテーブルを参照している新しいテーブルを作成するときに取得するIdが間違っています
class Venue < ApplicationRecord
has_many :events
has_many :bands, through: :events
end
class Event < ApplicationRecord
belongs_to :venue
belongs_to :band
end
class Band < ApplicationRecord
has_many :events
end
、私の移行です
を、私は私の関係がセットアップされているが、私は会場を参照する新しいイベントを作成するとき、それは私のshow.erbファイルに存在しない別の会場を探しますショーのための私のイベントコントローラでイベント
class CreateEvents < ActiveRecord::Migration[5.1]
def change
create_table :events do |t|
t.string :name
t.text :date
t.boolean :alcohol_served
t.string :image
t.belongs_to :venue, show:true
t.belongs_to :band, show:true
t.timestamps
end
end
end
のために私は
def show
@event = Event.find(params[:id])
venue_id = Event.select(:venue_id).find(params[:id])
@venue = Venue.find(params[:id])
end
を持っています
この場合、イベントのページが表示され、会場が指定されています。私は3つの会場、3つのイベント、3つのバンドを持っています。主な問題は、私が4番目のイベントを作成するときに、私が指定した会場の代わりに4番目の会場を探すことです。
私はそれが正しい方向にあったかもしれないと思っていましたが、 "id ="エラーのある場所を見つけることができませんでした。 – dutchkillsg
@dutchkillsgつまり、params [:venue_id]は 'nil'です。それをした '@venue = @ event.venue' – Pavan
を試してみてください!ありがとう、ありがとう、私はそれに感謝します。かなり新しいレールになっていましたので、これは練習アプリケーションでした – dutchkillsg