我的成员模型中有一个方法来确定成员是否是管理员:
def is_admin?; self.member_role.admin == true; end
如何在我的控制器中使用它来查找所有不是管理员的用户?
我的控制器已经非常紧凑:
@names = Member.where("fullname LIKE ?", "#{params[:letter]}%").order("fullname ASC").page(params[:page]).per(18)
我希望不必在我的观点中使用拒绝{}
答案 0 :(得分:2)
您可以在模型中创建范围,如:
scope :non_admins, where(:admin => false)
在你的控制器中:
@names = Member.where("fullname LIKE ?", "#{params[:letter]}%").non_admins.order("fullname ASC").page(params[:page]).per(18)
答案 1 :(得分:0)
最好的方法 - 在模型中使用范围Ruby guides - scopes
将过滤器和订单放在范围声明中并在控制器中使用范围