Ruby on rails 转到新页面在Rails中将我的用户id设置为null
我有两种型号。。一个用于用户(amitian),另一个用于 他们有一个属于协会的组织 问题是,无论何时我创建一个新的关于它的页面,它都可以正常工作,并将我的amitian\u id设置为current\u amitian,但无论何时我再次进入我的新页面。。它将我的阿米蒂安id更新为空 例如。 这是我提交表单后的sql 在about_amitian中插入('values',amitian_id=1) 如果我再次进入新页面,它会说 更新关于\u amitian set amitian\u id=null,其中关于\u amitian.id=1 这是我的控制器和模型Ruby on rails 转到新页面在Rails中将我的用户id设置为null,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有两种型号。。一个用于用户(amitian),另一个用于 他们有一个属于协会的组织 问题是,无论何时我创建一个新的关于它的页面,它都可以正常工作,并将我的amitian\u id设置为current\u amitian,但无论何时我再次进入我的新页面。。它将我的阿米蒂安id更新为空 例如。 这是我提交表单后的sql 在about_amitian中插入('values',amitian_id=1) 如果我再次进入新页面,它会说 更新关于\u amitian set amitian\u id=nu
class AboutAmitiansController < ApplicationController
before_action :authenticate_amitian!
def new
@amitian = current_amitian
@about_amitian = @amitian.build_about_amitian
end
def create
@amitian = current_amitian
@about_amitian = @amitian.create_about_amitian(about_amitian_params)
if @about_amitian.save
redirect_to root_url
flash[:notice] = 'success'
else
render root_url
end
end
private
def about_amitian_params
params.require(:about_amitian).permit(:dob,:interest,:bio,:catch_phrase,:relationship_status)
end
end
在阿米蒂安
有一个:关于阿米蒂安
为什么要更新我的数据库 你真的不必在每个新的请求中重建关于阿米蒂安的
@about\u amitian
。如果您总是通过current\u amitian
创建和更新AboutAmitian,那么仅此一项就可以保证amitian\u id的同步。尝试在你的new
操作中使用@about\u amitian=AboutAmitian.new
。流程看起来很奇怪,如果当前的\u amitian已经有一个about,为什么我们要为他创建一个新的?(你说这是有关系的)你在用Desive吗?通常情况下,一旦模型名称登录,当前的模型名称就可以全局访问。@Joel\u Blum是的,我有一个has\u one关系。。如果我不是从当前用户创建的,那么我如何在新函数中实现这种关系?
belongs_to :amitian