我想要一个像这样的表单,因为我只想使用:pass_value将值传递给控制器中的其他属性。但它不起作用。你能否提供一个正确的方法来做到这一点?Rails我可以使用窗体标签里面的形式吗?
<% form_for @person do |f| %>
<%= f.text_field :name %>
<%= text_tag :pass_value %>
<%= f.submit %>
<% end %>
我想要一个像这样的表单,因为我只想使用:pass_value将值传递给控制器中的其他属性。但它不起作用。你能否提供一个正确的方法来做到这一点?Rails我可以使用窗体标签里面的形式吗?
<% form_for @person do |f| %>
<%= f.text_field :name %>
<%= text_tag :pass_value %>
<%= f.submit %>
<% end %>
你cannnot使用的form_tag另一个表单中。但是如果你想传递:pass_value的值实际上不作为属性,请尝试使用虚拟属性。您可以使用:attr_accessor
方法。
不,您不能在窗体中使用窗体标签。但是你可以使用的一个:
一)fields_for
如果这是一个嵌套的模型,你可以使用它像:
fields_for :widget do |g|
g.text_field :widget_name
end
DOC为fields_for:http://apidock.com/rails/ActionView/Helpers/FormHelper/fields_for
B) text_field_tag
如果它只是一个独立的字段
<%= text_field_tag :some_value %>
DOC为text_field_tag: http://apidock.com/rails/ActionView/Helpers/FormTagHelper/text_field_tag
可以将所有
感谢您的帮助后,使用原始的HTML标记,如
它只是HTML表单。第二种解决方案可以解决我的问题,但问题是如果我有四个文本字段,比方说他们是姓名,pass_value,年龄,地址。 pass_value只是用来传递值,而不是模型的属性。另外,我希望pass_value排在第二位。但是如果我使用text_field_tag,我认为传递值只能放在表单之前或之后。 –
否,文本字段标记始终放置在表单内或不起作用。你可以像使用'f.text_field'一样使用它,并且可以将它放置在任何你喜欢的地方 - 如果你想要的话可以放在其他字段中。 –