Rails redirect_to 内部自定义 class
Rails redirect_to inside custom class
我的 Rails 应用程序中有一个自定义 Class,它验证了一系列设置。
代码:
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
但是不行,导致undefined method `config_accessor'错误。
如何在自定义 Class 中使用 Rails 重定向方法?
简短的回答是:你不能那样做。
redirect_to
仅在请求上下文中有意义(阅读:从控制器操作中调用时)。您无法从随机对象重定向,因为它们不知道要操纵什么请求。
是的,@AndreyDeineko 说的。
除了@SergioTulentsev 已经说过的,验证是为了验证,而不是为了采取行动。您可以做的是将正则表达式保留为一种方法,并在控制器中使用它检查 time
并根据验证结果进行重定向。
我的 Rails 应用程序中有一个自定义 Class,它验证了一系列设置。
代码:
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
但是不行,导致undefined method `config_accessor'错误。
如何在自定义 Class 中使用 Rails 重定向方法?
简短的回答是:你不能那样做。
redirect_to
仅在请求上下文中有意义(阅读:从控制器操作中调用时)。您无法从随机对象重定向,因为它们不知道要操纵什么请求。
是的,@AndreyDeineko 说的。
除了@SergioTulentsev 已经说过的,验证是为了验证,而不是为了采取行动。您可以做的是将正则表达式保留为一种方法,并在控制器中使用它检查 time
并根据验证结果进行重定向。