Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何连接配置文件控制器和用户控制器?_Ruby On Rails_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何连接配置文件控制器和用户控制器?

Ruby on rails 如何连接配置文件控制器和用户控制器?,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我有用户通过设计,并通过脚手架创建了个人资料,现在一切都很好,但我无法“连接”用户与个人资料 这就是我到目前为止所做的- user.rb has_one :profile profile.rb belongs_to :user 我也通过迁移在profiles表中创建了user_id列 现在,当我登录并填写表单/profiles/new时,它会创建配置文件,但无法链接到用户,因为用户id字段为空。此外,用户还可以创建多个配置文件,正如我所认为的,他只能创建一个配置文件,正如我所说的:has_o

我有用户通过设计,并通过脚手架创建了个人资料,现在一切都很好,但我无法“连接”用户与个人资料

这就是我到目前为止所做的-

user.rb

has_one :profile
profile.rb

belongs_to :user
我也通过迁移在profiles表中创建了user_id列

现在,当我登录并填写表单/profiles/new时,它会创建配置文件,但无法链接到用户,因为用户id字段为空。此外,用户还可以创建多个配置文件,正如我所认为的,他只能创建一个配置文件,正如我所说的:has_one relationship

有什么帮助吗

编辑-在profiles\u控制器文件中,我还尝试更改

@user_profile = UserProfile.new(params[:user_profile])

但它给出了未定义的方法“UserProfile”

@user_profile = current_user.userprofile.new(params[:user_profile])
应该是

@user_profile = current_user.build_user_profile(params[:user_profile])

我想应该是
@user\u profile=current\u user.build\u profile(params[:user\u profile])
(请参阅)我仍然收到相同的错误-未定义的方法'build\u profile'啊,明白了,代码很好,@user\u profile=current\u user.build\u user\u profile(params[:user\u profile]),你能告诉我CREATE有什么问题吗?因为我以前用过它,它工作得很好。如果你自己创建UserProfile,它就不会有
用户id
。在
当前用户
上建立关联可正确设置
用户id
。就是这么简单。看来你的个人资料模型叫做UserProfile,所以我已经回滚了Baldrick的答案编辑。
@user_profile = current_user.build_user_profile(params[:user_profile])