Rails4:附加表单域
Rails 4: Additional form field
这就是我的 new/edit 消息表单的样子(我正在使用 slim):
= form_for(@message) do |f|
= f.label :message
br
= f.text_area :content
br
= f.submit 'Submit'
有没有办法通过表单发送额外的字段(哪个没有在任何模型中定义?)。我想在消息控制器中的 'create' 方法中使用它。
您可以使用 hidden_field
方法创建和提交任意字段:
= f.hidden_field(:name)
这假设您有一个模型字段。如果不是你使用 hidden_field_tag
:
= hidden_field_tag(:name, 'value')
如果使用 Rails 4,您可以在模型中创建自定义访问器:
attr_accessor :content
并且不会保存到数据库中。
在 Rails5 中有一个特定的宏,它也可以对属性进行类型转换以供读取。
无论如何,如果使用 http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html
,请确保该属性也在白名单参数列表中
这就是我的 new/edit 消息表单的样子(我正在使用 slim):
= form_for(@message) do |f|
= f.label :message
br
= f.text_area :content
br
= f.submit 'Submit'
有没有办法通过表单发送额外的字段(哪个没有在任何模型中定义?)。我想在消息控制器中的 'create' 方法中使用它。
您可以使用 hidden_field
方法创建和提交任意字段:
= f.hidden_field(:name)
这假设您有一个模型字段。如果不是你使用 hidden_field_tag
:
= hidden_field_tag(:name, 'value')
如果使用 Rails 4,您可以在模型中创建自定义访问器:
attr_accessor :content
并且不会保存到数据库中。
在 Rails5 中有一个特定的宏,它也可以对属性进行类型转换以供读取。
无论如何,如果使用 http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html
,请确保该属性也在白名单参数列表中