从范围内的ActiveRecord :: RecordNotFound救援

时间:2013-11-25 13:41:24

标签: ruby-on-rails-4

想知道是否有可能从Active Record中的范围中拯救

我的模特

class Question < ActiveRecord::Base
  scope :active, -> {where("is_active = 't'")}
  validates_inclusion_of :is_active, :in => [true, false]
end

在控制器中,我有一个函数可以返回一个活动问题(如果有的话)

def get_active_question
  begin
    @question = Question.active.first
  end
end

我尝试使用rescue_from ActiveRecord::RecordNotFound, with: :no_record_error,但这似乎没有效果

如果没有返回活动问题,如何捕获/解除异常? (我想提出另一种观点)。非常感谢

1 个答案:

答案 0 :(得分:0)

您的范围绝不会引发异常。您使用的地方不是find(可以引发异常)

def get_active_question
  @question = Question.active.first

  if @question
    # you have a question 
    render 'one_view'
  else 
    # no active questions
    render 'another_view'
  end
end