在使用Rails编辑时自动填充表单值

Noa*_*ark 2 database forms ruby-on-rails ruby-on-rails-3

我有一个表单是从new.html.erb复制过来的,然后放入了edit.html.erb中。我本质上希望使用相同的表单,但是如果数据库中已经存在表单字段的值,我希望将它们拉入表单进行编辑。我目前有这样的事情:

<%= form_for @user do |f| %>
<% if @user.errors.any? %>
<div class="error_messages">
  <h2>Form is invalid</h2>
  <ul>
    <% for message in @user.errors.full_messages %>
      <li><%= message %></li>
    <% end %>
  </ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %>
<%= f.text_field :name %>
 </div>
 <div class="field">
<%= f.label :email %>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %>
<%= f.password_field :password %>
</div>
<div class="field">
<%= f.label :password_confirmation %>
<%= f.password_field :password_confirmation %>
</div>
.
.
.
.

<div class="actions"><%= f.submit %></div>
<% end %>
Run Code Online (Sandbox Code Playgroud)

如何从数据库中提取适当的值以填写字段?

chr*_*nda 5

如果您在控制器的“ edit”操作中设置@user,则此操作会自动发生-

def edit
  @user = User.find(params[:id])
end
Run Code Online (Sandbox Code Playgroud)

您可能还会考虑将表单作为部分表单而不是重复进行以使代码干燥(DRY)您的代码-此链接提供了一般的想法