我的Rails应用程序中有一个自定义类,它可以验证一系列设置。
代码:
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
我检查了SO帖子并发现了类似的问题(here),建议为include ActionController::Redirecting
,但它不起作用,导致未定义的方法`config_accessor&#39;错误。
如何在自定义类中使用Rails重定向方法?
答案 0 :(得分:4)
简短的回答是:你不能这样做。
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
仅在请求上下文中有意义(读取:从控制器操作中调用时)。您无法从随机对象重定向,因为他们不知道要操作的请求。
是的,@安德里·德内科说的话。
答案 1 :(得分:4)
除了@SergioTulentsev已经说过的,验证是用于验证,而不是用于采取行动。您可以做的是将regexp作为方法,并在控制器中使用它检查time
并根据验证结果重定向。