2013-01-19 2 views
1

동일한보기에서 여러 양식이 있는데, 서로 충돌하는 것 같습니다. 사용자 컨트 롤러에서 드러내는 조치를 호출해야하는 양식이 있지만 대신 사용자 컨트 롤러의 로그인 조치를 호출 중입니다.레일스가 잘못된 동작을 트리거하는 모양

이 렌더링 된 HTML입니다

<td><%= button_to "Reveal", { :controller => :users, :action => 'reveal', :id => login.id }, method: :get, :class => 'btn' %></td> 

: 여기

get "logins" => 'users#logins', :as => 'logins' 
delete "logins" => 'users#deletelogin', :as => 'logins' 
post 'logins' => 'users#addlogin', :as => 'add_login' 
get "logins" => 'users#search', :as => 'search' 
get "logins" => 'users#reveal', :as => 'reveal' 

잘못된 행동에 연결되어있는 버튼입니다 : 여기

내 설정/routes.rb입니다
<td><form action="/logins?id=24" class="button_to" method="post"><div><input class="btn" type="submit" value="Reveal" /><input name="authenticity_token" type="hidden" value="POKdWunwvaKQHb+Mzj/3UrG0xIbKPqELy4n3VGqGrxU=" /></div></form></td> 

답변

2

세 가지 방법 모두 /logins URL에 매핑되므로 문제가 발생합니다.

get 메서드에서 사용되는 해시의 첫 번째 부분은 URL에서 사용될 실제 경로를 정의합니다. 다음과 같이해야합니다.

get "logins" => 'users#logins', :as => 'logins' 
get "search" => 'users#search', :as => 'search' 
get "reveal" => 'users#reveal', :as => 'reveal' 

원하는 효과를 얻으려면 다음과 같이하십시오.

+0

고마워요! 라우팅이 어떻게 작동하는지 오해했습니다. 그것은 완벽하게 알고 작동합니다. – babaloo

관련 문제