2015-05-11 50 views
0

我現在正在使用Rails 4.2。如何在lib中使用控制器方法與Rails?

我在lib目錄下創建了一個模塊。我想從app/controllers/applicaiont_controller.rb調用的維護方法,但它失敗:

NoMethodError in ProductsController#index 
undefined method `redirect_to` for #<...> 

我的lib中的模塊,如:

module One 
    class Display 
    response = other_method 
    if response.status == 200 
     data = 'OK' 
    else 
     redirect_to_maintencance 'Maintenance ...' 
    end 
    data 
    end 
end 

應用程序/控制器/ applicaiont_controller.rb

class ApplicationController < ActionController::Base 
    # Other methods 

    def redirect_to_maintencance(message = nil) 
    redirect_to :maintencance, flash: { maintencance_message: message } 
    end 
end 
+0

爲什麼'#'拋出的錯誤?如果你只是想要另一個'redirect_to'ish助手,也許你可以在'app/helpers/some_helper.rb'中定義它。 – Aetherus

+0

因爲我想從products_controller的lib目錄下使用該模塊。 –

+0

然後包含'ProductsController'的代碼。您提供的代碼與錯誤無關。 – p4sh4

回答

0

這是在lib模塊中使用重定向方法不是一個好方法。 將狀態檢查邏輯移至控制器或助手。

感謝@ jphager2。

相關問題