2014-12-19 3 views
0

링크로 사용할 수 있도록 내 방책 앱에 몇 가지 매끄러운 버튼을 넣으려고합니다. 그러나 나는 그렇게하려고하는 이상한 문제에 직면하고있다. 다음과 같이 링크 버튼을 추가하려고 시도했습니다.Button_to 링크가 라우팅 오류로 연결됩니다.

<%= button_to("New", :action => "new", :controller => "registrations") %> 

이렇게하면 내 사용자를 sign_up 페이지로 안내 할 수있는 새로운 버튼이 생깁니다. 이 이상한 얻는 곳

은 다음과 같습니다 내가 http://localhost:3000/users/sign_up로 연결하고 버튼을 클릭하고 다음과 같은 오류가 나타나면

No route matches [POST] "https://stackoverflow.com/users/sign_up"

을하지만 이것은 사실이 아니다. 사실, 나는 그 오류에 나를 데려다 준 바로 그 URL을 강조하여 그것을 복사하여 새로운 탭에 붙이면 잘로드된다.

new_user_registration GET /users/sign_up(.:format)  registrations#new 

여기에 무슨 될 수 있습니다

절대적으로 명확하고 여기 rake routes에서 경로의 수하려면?

의견을 보내 주시면 감사하겠습니다.

답변

3

당신의 경로가 예상대로 어디로 가는지 button_to`가 GET 요청을 보내지 않아야합니다. 그게 문제를 만듭니다. 버튼을 POST 요청을 전송에

당신은 기본을 클릭하여

1.Change button_to 2.Add :method => :get

<%= button_to("New", {:action => "new", :controller => "registrations"}, :method => :get) %> 
+0

멋지게 완료되었습니다. 감사합니다. – neanderslob

1

link_to

<%= link_to("New", :action => "new", :controller => "registrations") %> 

에 다음과 같은 것 중 하나를 수행해야 서버. 이 동작을 변경하여 GET을 보내야합니다.

<%= button_to('New', {action: 'new', controller: 'registrations'}, method: :get) %>