Tôi có một bộ điều khiển có nhiều hành động mất: năm và: tháng là thuộc tính từ URL. Tôi đã thực hiện phương thức riêng là check_date để kiểm tra ngày hợp lệ và kiểm tra ngày không có trong tương lai.Làm cách nào để dừng thực thi bộ điều khiển sau khi sử dụng redirect_to? (Sử dụng Rails)
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
Có cách nào để kết thúc thực hiện điều khiển sau redirect_to không?
cách tôi có thể nghĩ đến là một trong hai để ném một ngoại lệ sau khi redirect_to hoặc để trả về một giá trị từ check_date và kiểm tra xem nó trong mỗi hành động mà các cuộc gọi nó - một cái gì đó giống như
def month_index
year = params[:year].to_i
month = params[:month].to_i
if !check_date(year, month)
return
...
end
Nhưng tôi tự hỏi, nếu có một số đường ray tốt đẹp để làm điều này. Tôi đã được một nửa hy vọng rằng có được gọi là redirect_to đường ray sẽ nhận ra tôi muốn dừng lại, nhưng điều đó dường như không xảy ra.
Điều này có thể giải quyết được vấn đề của người hỏi nhưng tôi đến đây mong đợi một giải pháp như vrish88's. – iphone007