2013-10-10 30 views
-3
def ads 
    @ads = @search.result.recent.completed.paginate(page: params[:page], per_page: 10).limit(10) 
    end 

    def events 
    @events = @search.result.recent.completed.paginate(page: params[:page], per_page: 10).limit(10) 
    end 

    def pets 
    @pets = @search.result.recent.completed.paginate(page: params[:page], per_page: 10).limit(10) 
    end 

    def companies 
    @companies = @search.result.recent.completed.paginate(page: params[:page], per_page: 10).limit(10) 
    end 

如何重構這段代碼到一些範圍Ruby方法的範圍和幹

+0

目前尚不清楚你想完成什麼。具體的目標是什麼? –

+0

類似於'@ads = @ search.scope_name' –

+0

這不清楚,應該@ads然後等於'全城','全國'還是'國際'?或者什麼是'scope_name'。 – vgoff

回答

1

目前尚不清楚你真的要存檔的東西。不知道上下文,我會重寫你的代碼,如下所示:

%w(ads events pets companies).each do |name| 
    class_eval <<-END_OF_RUBY, __FILE__, __LINE__ + 1 

    def #{name} 
     @#{name} = search 
    end 

    ENF_OF_RUBY 
end 

private 
    def search 
    @search.result.recent.completed.paginate(page: params[:page], per_page: 10).limit(10) 
    end