2011-03-14 41 views
2

我正在使用Ruby on Rails 3,並試圖創建一個插件以用於Rack 中間件。這是我第一次做這個經歷,所以如果我寫了一些錯誤,請耐心等待。插件實現:如何調用ActiveRecord上的方法?

我需要的是運行find方法後調用方法一個ActiveRecord。也就是說,我願做這樣的事情:

@accounts = Account.find([1,2,3]).to_page 

的方法to_page@accounts數據更改某些信息,而無需改變對象結構本身(例如:如果「原始」 @accounts是一個數組,它應該保持一個數組)。

此時在我的插件文件夾中,我有以下文件:

# init.rb 
require 'sl_pagination' 
ActiveRecord::Base.send(:include, SlPagination) 


#sl_pagination.rb 
module SlPagination 
    extend ActiveSupport::Concern 

    module ClassMethods 
    def to_page 
     # see below for more info 
    end 
    end 

    module InstanceMethods 
    #none 
    end 
end 

在Rack中間件,我有:

require 'sl_pagination' 
... 

如果中間件我用Account.find([1,2,3]).to_page聲明

#sl_pagination.rb 
def to_page 
    return "Test_account_page" 
end 

它將工作,我也將檢索「Test_account_page」值,但我找不到解決方案來更改並返回上面寫的ActiveRecord本身。那麼,我該如何修改ActiveRecord?

我試圖在selfreturn selfto_page方法中「玩」,但它的接縫不起作用。我也認爲使用acts_as_something但我仍然必須學習和理解(如果你解釋使用acts_as時,它是一個剩餘!:-))。此外,我不知道後一種解決方案是否可以幫助我實現我的目標。

+0

您如何修改數據? – errorhandler 2011-03-14 21:05:33

+0

我猜你給分頁只是一個例子,你正在嘗試做一些更有用的事情 – Selva 2011-03-15 12:01:50

+0

@errorhandler我必須建立一個散列,並添加ActiveRecord值和一些其他信息。 – user502052 2011-03-15 13:33:45

回答

相關問題