设计编辑帐户信息

时间:2012-03-28 20:15:13

标签: ruby-on-rails forms devise

当我转到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 %>

1 个答案:

答案 0 :(得分:3)

使用嵌套属性

在您的设计用户模型中,如果您有其他依赖模型,则可以在这些模型之间添加关系,例如has_manybelongs_to。这样做:

设计用户模型:

accepts_nested_attributes_for :name_of_other_model

然后在表单中,您可以使用fields_for。 fields_for docs

这也是这个here

的一个很好的轨道广播