【问题标题】:Rails 4: Additional form fieldRails 4:附加表单域
【发布时间】:2016-02-23 18:50:12
【问题描述】:

这就是我的新/编辑消息表单的样子(我使用的是slim):

= form_for(@message) do |f|
  = f.label :message
  br
  = f.text_area :content
  br
  = f.submit 'Submit'

有没有办法通过表单发送附加字段(在任何模型中都没有定义?)。我想在消息控制器内的“创建”方法中使用它。

【问题讨论】:

  • 如果您可以发布一个 minimal 示例来说明您的问题,这将非常有帮助。
  • 我把它简化为基本问题。

标签: ruby ruby-on-rails-4 tags slim-lang


【解决方案1】:

如果使用 Rails 4,您可以在模型中创建自定义访问器:

attr_accessor :content

它不会被保存到数据库中。

在 Rails 5 中有一个特定的宏,它也可以对属性进行类型转换以供读取。

无论如何,如果使用http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html,请确保该属性也在白名单参数列表中

【讨论】:

    【解决方案2】:

    您可以使用hidden_field 方法创建和提交任意字段:

    = f.hidden_field(:name)
    

    这假定您有一个模型字段。如果没有,请使用hidden_field_tag:

    = hidden_field_tag(:name, 'value')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-16
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 2021-10-24
      • 2015-12-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多