有没有办法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_id
和explanation
?
注意:请不要将此问题与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/