から継承しAdmin::UserBaseController
、検索可能でソート可能なユーザーのテーブルを表示し、同じ部分ビューを使用する2つの別個のコントローラーがあります。
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
変数の割り当て方法には、2つの方法の間に多くの類似点があります。それはとの違いでUser
あり@organization.users
、それだけです。どうすればこれを乾かすことができますか?