2015-02-11 2 views
1

У меня есть ProjectsController и я добавил там метод под названием search_for_members Я хочу, чтобы этот метод обновлял div с именами участников, когда пользователь нажимал submit через ajax, проблема в том, что я получаю ошибку маршрутизацииRails - Отправить форму контроллеру action

нет маршрута матчей [POST] "/ проекты/47"

Любая помощь?

routes.rb

resources :projects do 
    resources :user_stories 
    get '/projects/:project_id/searchformembers' => 'projects#searchformembers' 
    end 

просмотров/проекты/показать

 <%= form_tag :url => {:action => "search_for_members"} , :method => 'get', :remote => true do%> 
     <div> 
      <%= text_field_tag :search, params[:search], :class => 'form-control', :placeholder => 'User name'%> 
     </div> 
     <%= submit_tag "Add user", :name => nil, :class => "btn btn-info"%> 
     <% end%> 

     <div id="members"> 
     <%= render @users %> 
     <% end %> 

projects_controller

def search_for_members 
    if (params[:search]) 
    @users = User.search(params[:search], @project).page(params[:page]).per_page(4) 
    else 
    @users = @project.users 
    end  
    respond_to do |format| 
    format.js 
    end 
end 

ответ

1

Ваше определение маршрута неправильно и не соответствует к контроллеру или form_for использования. Измените свой маршрут, как это:

resources :projects do 
    get :search_for_members, :on => :member 
end 

А затем обновить form_for определение, на ваш взгляд, как это:

<%= form_tag search_for_members_project_path(@project), :method => 'get', :remote => true do%> 

И вы должны быть все готово.

+0

Спасибо за ваш ответ, но я все еще получаю эту ошибку маршрутизации. –

+0

Проверьте мое обновление и прочитайте ссылку '' form_tag'' http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-form_tag – dgilperez

+1

Спасибо: D это работает –

Смежные вопросы