2017-10-05 68 views
2

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

你能显示完整的错误信息吗? – thanhnha1103

+0

在你的模型中放attr_accessor:thing_that_doesnt_exist – krishnar

+1

我明白,正如我在我的问题中所述,我的困惑来自这样的事实:'f.hidden_​​field:thing_that_doesnt_exist'不会给出相同的错误。 – user2320239

回答

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'%> 
+0

这个例子有缺陷。 – max