0

我有一個名爲messages_datatables.rb文件中/app/datatables/admin/的link_to內的應用程序文件夾內的文件3.2.8軌道

class Admin::MessagesDatatable 
    delegate :params, :h, :link_to, :number_to_currency, to: :@view 
    . 
    . 
    . 
    private 
    def data 
    messages.map do |message| 
     [ 
     "", 
     link_to(message.subject, admin_message_path(message)) 
     ] 
    end 
    end 
    . 
    . 
    . 
    . 
end 

我需要使用這個文件裏面link_to幫手,但我得到:

NoMethodError (undefined method `admin_message_path' for #<Admin::MessagesDatatable:0xbe07170>): 

路徑在視圖中正常工作。我的路線中有我的路。

我哪裏有錯誤?

+1

你有admin_message路徑?你可以在你的命令行中執行'rake routes'來檢查。應該有一行包含'admin_message'。你也可以檢查你的routes.rb,如果有喜歡的東西'路線:如=>「admin_message'' – buftlica

+0

重新啓動Web應用程序服務器,然後再試一次你改變你的路線後 –

+0

不知路由的輔助代碼需要包括在課前。 –

回答

1

地址:

delegate :url_helpers, to: 'Rails.application.routes' 

代替admin_message_path而且,使用url_helpers.admin_message_path

+0

謝謝,這個工作正常,如果應用程序沒有'params [:locale]''。我的應用在'scope'(:locale)'do ... resources ... end'內使用params語言環境,我嘗試過'link_to(message.subject url_helpers.admin_message_path(params [:locale],message)) '但是我得到'NoMethodError(undefined method'link_to'for#):' – hyperrjas

+0

你不應該創建一個知道整個堆棧的對象。 – apneadiving

+0

我正在學習本教程http://railscasts.com/episodes/340-datatables,我可以看到它是如何工作的,但'link_to'不適合我! – hyperrjas

相關問題