我有用户语言的属性。表单提交时,它必须返回数组吗?
我想在模型用户中编写验证:
validates :languages, presence: true
如何写入验证,返回值必须是数组?
答案 0 :(得分:2)
class User< ApplicationRecord
validate :languages_is_array
def languages_is_array
if !languages.kind_of?(Array)
errors.add(:languages, "must be an array")
end
end
end
答案 1 :(得分:0)
如果您担心用户在表单中提交的内容而不是模型的验证,则可以声明param需要是您控制器中的数组。
请参阅:Action Controller Overview - 4.5 Strong Parameters
要声明params中的值必须是允许的标量值数组,请将键映射到空数组:
params.permit(id: [])