当我转到Devise提供的edit_user_registration_path
时,我会收到电子邮件和用户名预填充等字段。
我想创建自定义用户个人资料页面,其中包含用于编辑包含其他依赖模型字段的用户信息的类似表单。我希望字段预填充。 我该怎么做呢?
Devise提供的默认表单:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => { :method => :put }) do |f| %>
<%= devise_error_messages! %>
<div><%= f.label :email %><br />
<%= f.email_field :email %></div>
<div><%= f.label :username %><br />
<%= f.text_field :username %></div>
<div><%= f.label :password %> <i>(leave blank if you don't want to change it)</i><br />
<%= f.password_field :password, :autocomplete => "off" %></div>
<div><%= f.label :password_confirmation %><br />
<%= f.password_field :password_confirmation %></div>
<div><%= f.label :current_password %> <i>(we need your current password to confirm your changes)</i><br />
<%= f.password_field :current_password %></div>
<div><%= f.submit "Update" %></div>
<% end %>
答案 0 :(得分:3)
使用嵌套属性
在您的设计用户模型中,如果您有其他依赖模型,则可以在这些模型之间添加关系,例如has_many
和belongs_to
。这样做:
设计用户模型:
accepts_nested_attributes_for :name_of_other_model
然后在表单中,您可以使用fields_for。 fields_for docs
这也是这个here
的一个很好的轨道广播