【发布时间】:2010-10-23 16:13:11
【问题描述】:
我有一个控制器,其中包含多个操作,它们将 :year 和 :month 作为 来自 URL 的属性。我做了一个私有方法 check_date 检查日期是否有效,并检查日期不是将来。
def check_date(year, month)
if month < 1 || month > 12 || year < 2000
flash[:notice] = I18n.t 'archive.invalid_date'
redirect_to :action => 'index'
elsif year > Date.today.year || (year == Date.today.year && month > Date.today.month)
flash[:notice] = I18n.t 'archive.no_future'
redirect_to :action => 'month_index',
:year => Date.today.year,
:month => Date.today.month,
:type => params[:type]
end
end
在 重定向到?
我能想到的方法是要么在 redirect_to 之后抛出异常,要么从 check_date 返回一个值并在调用它的每个操作中检查它 - 类似于
def month_index
year = params[:year].to_i
month = params[:month].to_i
if !check_date(year, month)
return
...
end
但我想知道是否有一些不错的 rails 方法可以做到这一点。我是一半 希望调用redirect_to rails的人会认出我想 停止,但这似乎没有发生。
【问题讨论】:
标签: ruby-on-rails error-handling