레일 3 앱이 있으며 컨트롤러에서 메서드를 활성화하는 데 버튼을 사용하려고합니다. 내 users_controller.rb에 내가button_to를 사용하여 컨트롤러에서 메서드를 활성화하는 방법
def follow
...
...
end
을 그리고 뷰 (사용자/show.html.erb)에서 나는 버튼이 메소드를 호출 할 것을 의미한다. 현재 나는 <%= button_to("Un-Follow", :controller=>"users", :action=> "follow") %>
을 가지고 있습니다. 그러나 버튼을 클릭하면 다음 오류가 발생합니다 : No route matches [POST] "https://stackoverflow.com/users/5/follow"
이유가 무엇입니까?
이 문제를 해결하는 방법을 모르겠습니다.
EDIT : config/routes.rb를 수정하고 그 오류를 수정했습니다. 그러나 컨트롤러에서 여전히 오류가 발생합니다. nil id.
편집 : 모든 것이 정상적으로 작동합니다. 그러나 지금 버튼을 클릭하면 뷰가 연결되지 않는다고 표시됩니다. 그러나, 나는 그 방법을 부르고 싶다, 나는 새로운 시각을 원하지 않는다. 컨트롤러가 아닌 도우미가하는 것이 가장 좋을까요?
편집 : 마지막으로, 어떤 이유로, "따라 가기"버튼을 누르면 모든 것이 작동합니다. 그러나 "unfollow"버튼을 클릭하면 작동하지 않습니다.
더 많은 코드를 표시하십시오. 또한 답을 수정하고 이미 수정 한 오류에 대한 설명을 삭제하십시오. –
올바른 해결책을 원하거나 오류 메시지가 사라지 길 원합니까? 이 구현은 생각보다 훨씬 더 멀리 떨어져 있습니다. – drhenner
@Planetpluto : 괜찮 으면,이 질문을 맡아서 내 대답 (당신이 받아 들였습니다)에 맞게 편집 해 드리겠습니다 :-) –