我有一个(简单的)我自己的好奇心的问题:我想知道 Rails 如何使用已发布的值预填充表单......你知道,当某些模型的属性出现验证错误时,你会执行类似“渲染:edit" 并且表单被神奇地预填充。
Rails 用来做这种事情的机制到底是什么?我没有找到关于这个主题的任何文档,我想了解它的魔力。
因此,如果有人可以就这个主题给我一些解释,我会很高兴阅读!
谢谢!
[编辑] 还有一个附属问题:当一个模型从另一个(STI)继承时,我们是否必须做一些特别的事情来预填表格?
我有一个(简单的)我自己的好奇心的问题:我想知道 Rails 如何使用已发布的值预填充表单......你知道,当某些模型的属性出现验证错误时,你会执行类似“渲染:edit" 并且表单被神奇地预填充。
Rails 用来做这种事情的机制到底是什么?我没有找到关于这个主题的任何文档,我想了解它的魔力。
因此,如果有人可以就这个主题给我一些解释,我会很高兴阅读!
谢谢!
[编辑] 还有一个附属问题:当一个模型从另一个(STI)继承时,我们是否必须做一些特别的事情来预填表格?
您主要使用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
。如果您想仔细查看源代码,请在此处记录其方法。