【发布时间】:2014-03-26 00:25:04
【问题描述】:
我想限制用户可以添加到数据库中的记录数量。
我不确定用“Rails”的方式来解决这个问题...
我正在使用 Devise 并考虑创建自定义验证方法,但您无法从模型中访问 current_user,这是不正确的。
如何从控制器执行此操作并仍向我的用户返回错误消息?
我有这个
validate :post_count
def post_count
current = current_user.posts.count
limit = current_user.roles.first.posts.count
if current > limit
errors.add(:post, "Post limit reached!")
end
end
但这不是正确的方法,因为让 current_user 进入模型会很麻烦
【问题讨论】:
-
也许您可以在创建新帖子时进行验证。然后,您可以计算与当前正在创建的帖子的创建者相同的用户创建了多少帖子(从而避开了 current_user 的问题),并将其与该用户的限制进行比较。
-
好的,我如何在模型中检查“limit = current_user.roles.first.posts.count”?
-
查看背包客的回答,但我建议移动代码以检索 User 类上的方法的限制。
标签: ruby-on-rails ruby devise