--更新:我一直在做更多的阅读,看起来我应该添加一个外键 - 有人可以告诉我如何去做吗?我应该删除我创建的那些额外字段吗?
--
我是 Ruby on Rails 的新手,我在一些基本概念上遇到了麻烦。我刚刚读完 Michael Hartl 的书,我正在使用 RailsApps bootstrap-devise-cancan 模板开始我的第一个应用程序。
我有一个用户模型和一个事件模型。我希望用户能够发布许多活动并参加许多活动。我将字段 events_attending 和 created_events 添加到 User 表中,Event 表包括 users_attending 和 user_created。我试图做到这一点,以便在提交“创建事件”表单时,user_created 字段填充有发布事件的任何用户,并且该事件 ID 记录在 created_events 下的用户表中。
我已添加到事件模型中:
belongs_to :user
has_many :users
和用户模型(虽然我不确定这是否正确,因为用户可以属于多个事件。我查看了 has_and_belongs_to_many 并认为这可能是要走的路......):
has_many :events
belongs_to :event
我不知道在控制器中放入什么来达到预期的效果。这是事件控制器中当前的内容:
def create
@event = Event.new(params[:event])
respond_to do |format|
if @event.save
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render json: @event, status: :created, location: @event }
else
format.html { render action: "new" }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
我应该向控制器添加什么,我还缺少什么?让我知道是否需要查看更多代码。谢谢!