2012-06-29 1 views
0

им пытаются сделать простой поиск по моей базе данных от действия индекса вместо перечисления всех данныхвсех моих ссылок POST обрабатывается с помощью «создать»

это мой пользователи/индекс

<%= form_tag do %> 
<fieldset> 
    <div class="row"> 
     <div class="span5 offset3"> 
      <h2>Enter the CPF number of the user to be managed: </h2></br></br></br> 
      <div> 
       <%= label_tag :cpf_no, 'CPF Number:' ,class:"left_align" %> 
       <%= number_field_tag :cpf_no, params[:cpf_no] %> 
      </div> 
      <div> 
       <%= button_to "  Find  ", users_find_path , class: "btn btn-large btn-primary" %></br></br> 
      </div> 
     </div> 
    </div> 
    </fieldset> 
<% end %> 

и это метод найти в моем контроллере:

class UsersController < ApplicationController 
    ... 
def find 
if request.post? 
@user = user.find_by_cpf_no(params[:cpf_no]) 
redirect_to edit_user_path(@user.id) 
end  
end 
... 
end 

и теперь это мои маршруты:

   root  /        home#index 
      login GET /global/login(.:format)   sessions#new 
        POST /global/login(.:format)   sessions#create 
      logout DELETE /global/logout(.:format)   sessions#destroy 
     users_find POST /global/users/find(.:format)  users#find 
      users GET /global/users(.:format)   users#index 
        POST /global/users(.:format)   users#create 
      new_user GET /global/users/new(.:format)  users#new 
     edit_user GET /global/users/:id/edit(.:format) users#edit 
       user GET /global/users/:id(.:format)  users#show 
        PUT /global/users/:id(.:format)  users#update 
        DELETE /global/users/:id(.:format)  users#destroy 
      fields GET /global/data(.:format)   fields#index 
        POST /global/data(.:format)   fields#create 
     new_field GET /global/data/new(.:format)  fields#new 
     edit_field GET /global/data/:id/edit(.:format) fields#edit 
      field GET /global/data/:id(.:format)  fields#show 
        PUT /global/data/:id(.:format)  fields#update 
        DELETE /global/data/:id(.:format)  fields#destroy 

проблема заключается в том, что он не переходит к: id/edit path ... вместо этого он вызывает метод create, который дает несколько ошибок, поскольку проверки не прошли. как мне сделать доступ к методу поиска?

ответ

1

Вы должны указать путь прямо в своем form_tag.

form_tag user_find_path, :method => :post 
    # other code 
    = submit_tag "Find" 
+0

прекрасное! оно работает! может у, пожалуйста, объясните, почему одна кнопка не работала? потому что он явно указывал на правильный путь, а также на использование правильного метода http. маршруты должны были позаботиться о нем правильно? – viswa

+0

Ну, это была публикация, но только не на правильном пути. Я думаю, что без указания пути в самом form_tag, он по умолчанию просто переходит к/users, а в качестве сообщения это означает, что он переходит к действию create. – MrDanA

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