我的用户输入有一个location
键,其值可以是一个数组:
params # => {"location"=>["California", "New York"], "email"=>"test@test.com", "name"=>"Test"}
或字符串:
params # => {"location"=>"California", "email"=>"test@test.com", "name"=>"Test"}
我想知道允许数组或字符串的最佳方法是什么。
我能看到的最简洁的方法是将:location
和location: []
添加为允许的参数,但我不确定这是否是实现此目的的正确方法。
def params
params.permit(
:name,
:email,
:location,
location: []
)
end
有什么建议吗?这是正确的方法吗?
答案 0 :(得分:0)
请注意,permit
用于whitelist parameters for Active Model mass assignment。所以你的解决方案可能没问题。另一种方法是强制location
进入一个数组(如果它已经是一个数组,它将保持不变):
def permitted_params
params["location"] = Array(params["location"])
params.permit(
:name,
:email,
location: []
)
end