Rails新手在这里,我试图使用用户模型和事件模型之间的关联。用户可以创建许多事件。 Iam目前正在为我的用户模型使用设计。任何人都可以指出我正确的方向,所以我可以将user_id存储在当前登录用户的事件模型中,我的当前代码如下:
//////事件控制器创建方法:
def create
@user = User.find(params[:user_id])
@event = @user.events.create(params[:event].permit(:name, :date, :time, :description, :dresscode, :price, :avatar, :avatar2, :avatar3, :avatar4, :user_id))
if @event.save
redirect_to @event
else
render 'new'
end
end
答案 0 :(得分:3)
使用像这样的构建方法
@event = current_user.events.build(params[:event])
答案 1 :(得分:0)
class EventsController < ApplicationController
def create
@event = current_user.events.build(event_params)
if @event.save
redirect_to @event
else
render 'new'
end
end
private
def event_params
params.require(:event).permit(:name, :date, :time, :description, :dresscode, :price, :avatar, :avatar2, :avatar3, :avatar4, :user_id))
end
end
提示:
current_user
方法,用于返回已登录的用户。.build
通过关联记录而不实际保存它们(如.create
)那样(有关has_many
关联生成的方法的参考,请参阅the Rails API docs )。event_params
提取到您可以在create
和update
操作中重复使用的方法。希望这有帮助!