2
我在产品和类别之间有HABTM关系。这些类别属于用户。Rails 3:验证记录属于用户
在我的产品形式中,我只显示当前用户的复选框。但是我也想在模型上验证它,所以用户不能伪造POST变量并将其分配给无效的类别。
我该如何做这种验证?
例如:给出category_id 5,我必须检查这个类别是否属于current_user.id(由devise提供)。
谢谢。
我在产品和类别之间有HABTM关系。这些类别属于用户。Rails 3:验证记录属于用户
在我的产品形式中,我只显示当前用户的复选框。但是我也想在模型上验证它,所以用户不能伪造POST变量并将其分配给无效的类别。
我该如何做这种验证?
例如:给出category_id 5,我必须检查这个类别是否属于current_user.id(由devise提供)。
谢谢。
您可以将attr_accessor: creator_id
加入您的Post
型号。 (creator_id
不在数据库中)
Post
的
creator_id
和发送current_user.id
。
然后使用模型回调。例如after_validation
:
after_validation do
if User.find(creator_id).categories.pluck(:id).include?(category_id)
true
else
errors.add :category, "is invalid for user"
end
end