为什么隐藏的野外目标不需要是模型的属性?

时间:2017-10-05 10:22:16

标签: ruby-on-rails forms

我正在开发一个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

没有给我一个错误,我不知道为什么,当然它应该与文本字段的工作方式相同。如果有人能帮助我理解这里发生了什么,我将非常感激。

1 个答案:

答案 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'%>