ruby-on-rails - 强参数允许嵌套属性的所有属性

标签 ruby-on-rails ruby ruby-on-rails-3.2 ruby-on-rails-4 strong-parameters

有没有办法strong parameters允许nested_attributes 模型 的所有属性?这是示例代码。

class Lever < ActiveRecord::Base
 has_one :lever_benefit
 accepts_nested_attributes_for :lever_benefit
end

class LeverBenefit < ActiveRecord::Base
  # == Schema Information
  #  id          :integer          not null, primary key
  #  lever_id    :integer
  #  explanation :text
end

对于杠杆强参数,我目前正在写这个

def lever
 params.require(:lever).permit(:name,:lever_benefit_attributes => [:lever_id, :explanation])
end

有没有一种方法可以让嵌套属性允许所有属性,而无需明确给出属性名称,如lever_idexplanation

注意:请不要将此问题与permit!permit(:all) 混淆,这是为了允许所有嵌套属性

最佳答案

我遇到的唯一允许嵌套参数哈希中的任意键对我来说似乎合理的情况是写入序列化列时。我设法像这样处理它:

class Post
  serialize :options, JSON
end

class PostsController < ApplicationController
  ...

  def post_params
    all_options = params.require(:post)[:options].try(:permit!)
    params.require(:post).permit(:title).merge(:options => all_options)
  end
end

try 确保我们不需要 :options 键的礼物。

关于ruby-on-rails - 强参数允许嵌套属性的所有属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17810838/

相关文章:

ruby-on-rails - ElasticSearch和Tire:如何使用html_strip

ruby-on-rails - Web API 服务器应该使用 session ID 和/或授权 token 吗?

ruby-on-rails - 如何在 Ruby/Rails 中进行只发生一次的函数调用

ruby-on-rails - Rails 3.2.8 Application.js 和 Application.css 未按预期工作

javascript - Rails 3 设备 : destroy localStorage and sessionStorage when logout?

ruby-on-rails - 尝试注册用户时未初始化的常量 OmniauthCallbacksController

ruby - 如何使用 Ruby 通过 HTTP 下载文件?

ruby-on-rails - 我如何找到 id 不匹配任何数组的地方?

ruby-on-rails - 如何列出一个类的所有方法(不是扩展和包含的方法)

ruby-on-rails - Rack rack.input 变量被截断了吗?