我想要一个这样的表单,因为我只想使用:pass_value将值传递给控制器中的其他属性。但它不起作用。你能提供一个正确的方法吗?
<% form_for @person do |f| %>
<%= f.text_field :name %>
<%= text_tag :pass_value %>
<%= f.submit %>
<% end %>
答案 0 :(得分:2)
不,您不能在表单中使用表单标记。但你可以使用以下其中一个:
a)fields_for
如果这是一个嵌套模型,你可以使用它:
fields_for :widget do |g|
g.text_field :widget_name
end
fields_for的文档:http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for
b)text_field_tag
如果它只是一个独立的领域
<%= text_field_tag :some_value %>
text_field_tag的doc: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/text_field_tag
答案 1 :(得分:1)
你不能在另一个表单中使用form_tag。但是如果你想传递:pass_value的值实际上不是作为属性,请尝试使用虚拟属性。您可以使用:attr_accessor
方法。
答案 2 :(得分:0)
您可以使用原始html标记,例如
input type="hidden" name="person[pass_value]" value=@person.pass_value
毕竟它只是html形式