2015-05-31 2 views
0

У меня есть приложение 4 рельсов с моделью событий, которую я хочу сделать для поиска на разных полях, используя драгоценный камень Ransack.rails 4 ransack gem, ошибка неопределенного пути

моих действия контроллера:

def index 
@search = Event.ransack(params[:q]) 
@events = @search.result(distinct: true) 
end 

моя форма поиска в index.html.erb:

<%= search_form_for @search do |f| %> 
<%= f.text_field :name_cont, class: "radius-left expand", placeholder: "Event Name" %> 
<% end %> 

Однако при загрузке страницы, я получаю следующее сообщение об ошибке:

ActionView :: Template :: Error (неопределенный метод events_path 'для # < #: 0x007fc08b3fa838>): 1:

События

2: 3: <% = search_form_for @search do | f | %> 4: <% = f.text_field: name_cont, класс: "radius-left expand", placeholder: "Event Name"%> 5: <% end%> 6: app/views/events/index.html.erb : 3: in_app_views_events_index_html_erb ___ 2056451196739971413_70232473324180'

, когда я разгребать маршруты, я получаю:

 events_show GET /events/show(.:format)   events#show 
    events_index GET /events/index(.:format)  events#index 

так я полагаю, если я мог бы получить эту форму, чтобы указать на events_index_path, он будет работать, как ожидалось.

Что нужно сделать, чтобы указать правильный путь для формы?

+0

У меня такая же проблема. Вы уже не повезло с ответом? – nulltek

+0

Tbh Я не уверен, что я сделал, чтобы это работало. – user2799827

+0

Для получения информации о путях см., Что я здесь придумал. http://stackoverflow.com/questions/30959046/ransack-undefined-method-path-rails-4-2-1 Мне нужно было явно указать путь контроллера/маршрута, чтобы форма поиска корректно работала. – nulltek

ответ

0

Tbh Я не уверен, что я сделал, чтобы получить эту работу. здесь действует мое действие индекса контроллера, которое включает в себя функцию поиска по расстоянию/местоположению:

def index 
    if params[:within].present? && (params[:within].to_i > 0) 
     @search = Event.near(params[:location],params[:within]).search(params[:q]) 
    else 
     @search = Event.search(params[:q]) 
    end  
    @events = @search.result 
    end