2017-09-06 33 views
1

初めての呼び出し元、長い時間のリスナー。私のRails関連に問題があります。私の目標は、ユーザーがイベントを作成してイベントに出席できるイベントWebサイトを作ることです。マイイベントモデルのみ説明し、私のユーザーは単に名前フィールドを持つcreator_id外部キーを持っている Railsメソッドのエラーの関連付けはありません

class Event 
    belongs_to :creator, :class_name => "User" 
    ... 
end 

class User 
    has_many :created_events, :foreign_key => "creator_id", :class_name => "Event", dependent: :destroy 
    ... 
end 
:私はそのような私のようなモデルのユーザーとイベントとの関連付けを作成しました。しかし、 @event = current_user.events.buildを使用しようとすると、メソッドのエラーが発生します。 current_userは、セッションを使用してユーザーIDを返します。

なぜこのエラーが発生したのかわかりません。

私はフルプロジェクトthis Github repositoryを持っています。

+0

[スタイルガイド](https://meta.stackexchange.com/questions/18614/style-guide-for-questions-and-answers)を必ずチェックしてください。可能な限り最高です。 – Oxfist

+0

'current_user'がユーザIDだけの場合、それはUserクラスのインスタンスではないので、' events'メソッドはありません。このidを使って、 'User.find(current_user)'のようなものであなたが望むユーザを得ることができます。 – Oxfist

+2

クラス 'User'' has_many:created_events'ではなく、' has_many:events'です。ですから、 'current_user.events.build'の代わりに' current_user.created_events.build'を試してみてください。 – jvillian

答えて

1

クラスUserhas_many :created_eventsではなく、has_many :eventsです。したがって、current_user.events.buildの代わりにcurrent_user.created_events.buildを試してください。

+0

この回答に加えて、イベント属性( 'date/description')を操作した後、' @ event.save'を呼び出すことによって新しいイベントを保存することを忘れないでください。 'build'メソッドはメモリ内インスタンスを作成するだけです。 'save'はそれをデータベースに永続化します。 –

関連する問題