0

我有一个(简单的)我自己的好奇心的问题:我想知道 Rails 如何使用已发布的值预填充表单......你知道,当某些模型的属性出现验证错误时,你会执行类似“渲染:edit" 并且表单被神奇地预填充。

Rails 用来做这种事情的机制到底是什么?我没有找到关于这个主题的任何文档,我想了解它的魔力。

因此,如果有人可以就这个主题给我一些解释,我会很高兴阅读!

谢谢!

[编辑] 还有一个附属问题:当一个模型从另一个(STI)继承时,我们是否必须做一些特别的事情来预填表格?

4

1 回答 1

1

您主要使用form_for这种风格的助手:

<%= form_for @person do |f| %>
  <!-- Some more stuff here -->

  <%= f.text_field :first_name %><br />

  <!-- Some more stuff here -->
<% end %>

这个本质的作用是,它生成一个文本字段,其中填充了 的值@person.first_name.to_s。当发生错误时,@person.first_name用错误值填充。如果你创建一个人 ( @person = Person.new),那么@person.first_name.to_s就是""

所以 rails 只是用属性的值填充文本字段。

f顺便说一句是铁轨FormBuilder。如果您想仔细查看源代码,请在此处记录其方法。

于 2012-07-29T20:24:00.463 回答