我有兩個單獨的控制器,從Admin::UserBaseController
繼承,顯示一個可搜索,可排序的用戶表,並使用相同的部分視圖。Rails DRY向上類似的控制器操作
Admin::UsersController
- 顯示給定組織環境中的用戶。Admin::OrganizationsController
- 顯示系統的所有用戶。
這裏是Admin :: UsersController的指數方法:
def index
q = "%#{params[:search]}%"
@users = User.where("first_name like ? or last_name like ? or username like ?", q, q, q).order(sort_column + ' ' + sort_direction).paginate(:page => params[:page])
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @users }
end
end
這裏是Admin :: OrganizationsController的編輯方法:
def edit
@organization = Organization.find(params[:id])
q = "%#{params[:search]}%"
@users = @organization.users.where("first_name like ? or last_name like ? or username like ?", q, q, q).order(sort_column + ' ' + sort_direction).paginate(:page => params[:page])
end
有很多的相似的兩種方法分配@users
變量。這是User
和@organization.users
的差異,就是這樣。我如何幹這個?
範圍正在改變我的人生。找到其他地方也可以使用它們。謝謝你的提示。 – retailevolved