【发布时间】:2015-08-22 04:18:59
【问题描述】:
我想从参数访问三个键。
说我的参数是:
params = {
'product_id' => 11,
'category' => {
'name' => 'Pet',
'sub_categories' => {5 => 'Name1', 7 => 'Name2'} ## **UPDATE**
'id' => 100
},
'user_action' => 'save'
}
现在我想使用强参数来过滤掉这些键。即
#Inside controller
#action
def save_product_category
product_params[:product_id]
product_params[:category]
product_params[:user_action]
end
private
def product_params
params.permit(:product_id, :user_action, :category) # Doesn't work, eliminates 'category' key
end
如何过滤掉这三个键?
更新: 我找到了一种方法:
params.slice(:product_id, :category, :user_action)
这是正确的做法吗?
更新 2: 正确答案如下:
params.permit(:product_id, :user_action, :category => [:id, :name, :sub_categories => {}])
感谢@R_O_R 和@twonegatives 帮助我并容忍我:)
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 strong-parameters