2012-05-23 28 views
0

我有我的會員模型的方法來確定一個成員是管理員或不:我可以在我的控制方法的Rails 3

​​

如何使用,在我的控制器找到所有沒有管理員的用戶?

我的控制器已經是相當包裝:

@names = Member.where("fullname LIKE ?", "#{params[:letter]}%").order("fullname ASC").page(params[:page]).per(18) 

我還想不必使用拒絕{}在我的意見

回答

0

的最佳方式 - 在你的模型中使用範圍Ruby guides - scopes

將您的過濾器和訂單放在範圍聲明中,並在控制器中使用範圍

2

您可以在您的模型中創建一個範圍:

scope :non_admins, where(:admin => false) 

而在你的控制器:

@names = Member.where("fullname LIKE ?", "#{params[:letter]}%").non_admins.order("fullname ASC").page(params[:page]).per(18) 
+0

管理列實際上是一個單獨的表稱爲member_role,所以我不能使用:管理員符號 – rugbert

+0

你仍然可以使用它通過協會,如用戶。 member_role.non_admins並在那裏設置範圍。請注意,member_role模型很可能是多餘的。如果您正在設置角色,則應在User模型中使用常量數組來設置它們。 – Spyros

+0

我的意思是,我將如何使用我在我的成員模型中寫的方法「is_artist?」在範圍內?我已經嘗試了一些東西,但不斷得到未定義的方法錯誤 – rugbert

相關問題