【发布时间】:2014-05-06 19:16:51
【问题描述】:
我正在尝试在 Rails 4.1 中使用强大的参数并且失败了。
# Some request params
params = ActionController::Parameters.new({
order: {
shipping_method: '03',
line_items_attributes: [{
sale_id: "12847",
qty: "12"
}]
}
})
# try to permit them all
params.permit(:order).permit(
:shipping_method,
{
line_item_attributes: [
:sale_id,
:qty,
]
}
)
# Unpermitted parameters: order
# => {}
我希望能够允许所有这些参数。
为什么我会收到该警告,为什么我会收到一个空哈希作为返回值?
似乎require 更有帮助,但我仍然无法获得嵌套的哈希数组
params.require(:order).permit(
:shipping_method,
{
line_item_attributes: [
:sale_id,
:qty,
]
}
)
# Unpermitted parameters: line_items_attributes
# => {"shipping_method"=>"03"}
【问题讨论】:
-
我认为应该是
params.require(:order).permit(...)。注意 require 而不是 permit。
标签: ruby-on-rails ruby ruby-on-rails-4 strong-parameters