2016-11-18 86 views
1

我在我的Rails應用程序中有一個自定義的類,它驗證了一堆設置。Rails redirect_to內部自定義類

代碼:

class UserSettingObject < RailsSettings::SettingObject 
    validate do 
    if !/^([0-9]|0[0-9]|1[0]):[0-5][0-9]$/.match(self.time) 
     redirect_to settings_path, notice: 'Invalid time format' 
    end 
    end 
end 

我檢查,以便帖子,發現了類似的問題(here),該建議是include ActionController::Redirecting但它沒有工作,導致未定義的方法`config_accessor」的錯誤。

如何使用Rails重定向類中的方法?

回答

4

除了@SergioTulentsev已經說過的,驗證是用於驗證,而不是用於採取行動。您可以做的是將正則表達式作爲方法離開,並在控制器中檢查使用它的time,並根據驗證結果重定向。

+1

哈哈,互信:) –

+0

@SergioTulentsev我剛剛意識到,你實際上回答了一個問題,而我提出了一個替代的東西,那是行不通的:) Upvoted –

4

簡短的回答是:你不能那樣做。

redirect_to僅在請求上下文中有意義(請參閱:從控制器操作內部調用時)。你不能從隨機對象中重定向,因爲他們不知道要操縱什麼請求。

是的,@AndreyDeineko說。