私は、ユーザーがイベントに登録できるようにするアプリケーションを作成しようとしています。すべてのイベントには、イベントに参加する予定のオーナーとユーザーがいます。私は、後者のための適切な関連付けを選択するのに問題があります。私はhas_and_belongs_to_manyを試しましたが、それを使用することは推奨されていないので、has_many:throughを試しました。それはうまくいかないようです。これは私が今のところ思い付いたものです:どのRails関連付けを使用する必要がありますか?
class User < ApplicationRecord
has_secure_password
has_many :events, :foreign_key => :owner_id
has_many :event_users
has_many :events, :through => :event_users
end
class Event < ApplicationRecord
belongs_to :user, :foreign_key => :owner_id
has_many :event_users
has_many :users, :through => :event_users
end
class EventUser < ApplicationRecord
has_many :users
has_many :events
end
そしてサインアップのコードは次のようになります。
def sign_up
user = User.find(session[:user_id])
@event.users << user
end
このコードは、エラーを返します:
Cannot modify association 'Event#users' because the source reflection class 'User' is associated to 'EventUser' via :has_many.
あなたたちは教えてもらえます私が間違ってやっていること、それを正しく行う方法は?それは私の最初の深刻なRailsアプリであり、本当に正しい方法で書こうと思っています。前もって感謝します。