是否可以在 Rails 的强参数中将 JSON(作为文本)列入白名单?
Is it possible to whitelist JSON (as text) in Rails' strong parameters?
假设我有这个 JSON:
{
name: 'David',
tags: {
is_confused: true
}
}
并且在特定模型(即用户)中,我可以直接保存它...但是我的标签对象需要保存在稍后将序列化为 JSON 的文本列中。有没有办法用强参数做到这一点?
您可以将标签强制 json,然后再将其作为具有强参数的字符串。
假设您的对象被命名为 "params":
params[:tags] = params[:tags].permit(:is_confused).to_json
final_data = params.permit(:name, :tags)
这使用强参数在将其转换为 json 字符串之前检查标签字段,以便您可以将其保存为文本(并使用强参数确保它是一个字符串)。
假设我有这个 JSON:
{
name: 'David',
tags: {
is_confused: true
}
}
并且在特定模型(即用户)中,我可以直接保存它...但是我的标签对象需要保存在稍后将序列化为 JSON 的文本列中。有没有办法用强参数做到这一点?
您可以将标签强制 json,然后再将其作为具有强参数的字符串。
假设您的对象被命名为 "params":
params[:tags] = params[:tags].permit(:is_confused).to_json
final_data = params.permit(:name, :tags)
这使用强参数在将其转换为 json 字符串之前检查标签字段,以便您可以将其保存为文本(并使用强参数确保它是一个字符串)。