尝试获取活动记录ID时没有MethodError

时间:2012-03-15 11:03:42

标签: ruby-on-rails-3 activerecord

模特:

  def self.get_by_slug(slug)
    self.where("slug = ?", slug)
  end

在控制器中:

  #route: match '/category/:slug', :to => 'category#index', :as => "category_jobs"
  @category = Category.get_by_slug(params[:slug])
  @jobs = Job.where("category_id = ? AND expires_at > ?", @category.id, DateTime.now)
           .paginate(:page => params[:page], :per_page =>    Jobeet::Application::MAX_JOBS_ON_CATEGORY_PAGE)
           .order("expires_at desc")

当我尝试在控制器中获取category.id时,我收到错误:

  

的未定义方法`id'

有人可以给我任何建议吗?

1 个答案:

答案 0 :(得分:3)

如果您希望单个记录,您应该这样做:

@category = Category.get_by_slug(params[:slug]).first

因为.where(something)没有返回单个记录。