在rails中使用form_for进行一对一关系模型

时间:2013-12-13 07:48:25

标签: ruby-on-rails devise form-for belongs-to has-one

我有一对一的用户和个人资料模型。

以下是设备创建的User模型的代码。

class User < ActiveRecord::Base  
  has_one :profile , dependent: :destroy
end

Profile模型的代码。

class Profile < ActiveRecord::Base   
  belongs_to :user  
end

现在我在注册时创建了Profile的基本User。现在,如何使用帮助设备编辑用户个人资料,current_user提供form_for

1 个答案:

答案 0 :(得分:0)

我们做了类似的事情:

#app/models/user.rb
Class Model < ActiveRecord::Base
    before_create :build_profile
end

这将填充数据库中的配置文件记录,允许您稍后在

上更新它

保存用户后,最好使用accepts_nested_attributes_for来填充&am​​p;通过表单为用户保存profile选项,如下所示:

#config/routes.rb
resources :users do
   resources :profiles 
end

#app/views/profiles/edit.html.erb
<%= form_for @profile do |f| %>
     <%= f.hidden_field :user_id, current_user.id %>
     <%= f.text_field :your_profile_options %>
<% end %>

这是一种非常基本的方法,但希望能给你更多的想法。如果你想在野外看到这个,请查看http://video-conference-demo.herokuapp.com(它使用Devise来处理用户并且还有额外的“个人资料”模型)