2012-03-15 3 views
0

を取得しようとしたとき:コントローラでませんMethodErrorモデルでアクティブなレコードID

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") 

私は、コントローラでのget category.idをしようとすると、私はエラーを取得しています:

undefined method `id' for #

誰かから助言をいただけますか?

+0

"get_by_slug"は構文的に正しいですか?それはあなたの正確なコードですか? –

+1

あなたはコレクションのIDを取得しようとしているので、最初のものを取得する必要があります – alony

答えて

3

あなたはあなたが何をすべき単一のレコードを期待していた場合:

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

.where(something)ためには単一のレコードを返しません。

関連する問題