我正在开发一个rails项目,我遇到了一些看起来很奇怪的东西。我在我的视图中有一个表单,对于任何普通字段,例如f.text_field
,如果模型没有必需的属性,我会收到错误,例如:
f.text_field :thing_that_doesnt_exist
给我错误:
undefined method `thing_that_doesnt_exist' for #<Model:0x007f7d00b809a0>
然而:
f.hidden_field :thing_that_doesnt_exist
没有给我一个错误,我不知道为什么,当然它应该与文本字段的工作方式相同。如果有人能帮助我理解这里发生了什么,我将非常感激。
答案 0 :(得分:1)
案例1:无错误地工作
<%= f.hidden_field :thing_that_doesnt_exist, :value => "x" %>
<%= hidden_field_tag 'thing_that_doesnt_exist', "x" %>
案例2:如果未提及值,则会引发错误(因为它会尝试调用不存在的属性名称)
<%= f.hidden_field :thing_that_doesnt_exist%>
<%= hidden_field_tag 'thing_that_doesnt_exist'%>
案例3:适用于现有字段thing_that_does_exist
<%= f.hidden_field :thing_that_does_exist%>
<%= hidden_field_tag 'thing_that_does_exist'%>