在使用重定向到后,如何停止控制器执行?(使用轨道)

我有一个控制器,具有多个动作,分别为:年和:月
来自URL的属性。到目前为止,我已进行了一次私人方法检查
检查日期是否有效,检查日期是否在将来

def检查日期(年、月)
如果月份<1 | |月>12年<2000
flash[:notice]=I18n.t'存档。无效\u日期'
将_重定向到:action=>'索引'
elsif年度>Date.today.year | |(year==Date.today.year&month>Date.today.month)
flash[:notice]=I18n.t'存档。没有未来'
将_重定向到:action=>'月份指数',
:年份=>Date.today.year,
:月=>日期.今天.月,
:type=>参数[:类型]
终止
终止

是否有一种rails方法可以在结束后结束控制器的执行
重定向到

我可以想到的方法是在重定向到之后抛出一个异常,或者从check\u date返回一个值,并在调用它的每个操作中检查它,比如

def月索引
年=参数[:年]。至
月=参数[:月]。至
如果检查日期(年、月)
回来
...
终止

但我想知道是否有一些很好的rails方法可以做到这一点。我有一半
希望在把redirect_打电话给rails后,我会意识到我想这么做
停下来,但这似乎没有发生

您还可以执行以下操作:

返回重定向到:操作=>’索引’

返回重定向到:操作=>’月份指数’,
:年份=>Date.today.year,
:月=>日期.今天.月,
:type=>参数[:类型]

因为它看起来比把回报放在自己的线上(IMHO)更好

发表评论