Добрый день всем,
У меня есть контроллер, на котором запущен фильтр before с переопределением кроме.Он отлично работает для всех методов в контроллере, кроме одного.Я скопировал код для рассматриваемого метода из другой части моего приложения, просто внося необходимые изменения, чтобы он работал для этой конкретной области.
Вот пример кода контроллера:
class Admin::DealsController < ApplicationController
before_filter :populate, :except => [:index, :create, :new, :search]
# GET /deals
def index
@deals = Deal.paginate(:page => params[:page], :per_page => PAGESIZE, :order => 'start_time DESC')
@page_subtitle = "Deals"
end
def search
@searchString = params[:search_string]
@deals = Deal.paginate(:page => params[:page], :per_page => PAGESIZE, :conditions => "subject LIKE '%#{@searchString}%'")
@page_subtitle = "Deal Search Results"
render 'index'
end
protected
def populate
@deal = Deal.find(params[:id])
end
end
И вот маршрут в моем файле rout.rb для рассматриваемого метода:
admin.search_deal 'deals/search', :controller => 'deals', :action => 'search', :method => 'get'
Теперь, когда я пытаюсь посетить этот URL:
/admin/deals/search?search_string=test&commit=Search
Он генерирует следующее сообщение об ошибке:
Couldn't find Deal with ID=search
Этот код работает на нескольких других контроллерах, и я весь день бился головой об стену, пытаясь понять, что я делаю неправильно.Буду признателен за любую помощь, спасибо.