我有一个具有列profile_id的User模型和一个具有主键列id的Profile模型,在profile的create方法运行完毕后,我希望profile_id列从profile模型中获取id的值。我知道我可以在after_filter方法中执行此操作,但是我应该在方法中写什么?
答案 0 :(得分:1)
如果配置文件belongs_to用户和用户has_one配置文件de外键应该在配置文件模型中
所以,个人资料模型有user_id字段
在个人资料的创建方法中你可以做这样的事情
def create
@profile = Profile.new(params[:profile])
@profile.user_id = current_user.id
respond_to do |format|
if @profile.save
format.html { redirect_to @profile , notice: 'profile was successfully created.' }
else
format.html { render action: "new" }
end
end
end
或者不是这样的:
@profile.user_id = current_user.id
你可以
@profile.user_id = params[:user_id]
如果你通过参数发送id
然后您可以通过以下关系访问它:
@ profile.user.name @ profile.user.email 要么 current_user.profile.name