2011-01-17 5 views
1

저는 레일즈 3 초보자입니다. 그래서 거의 모든 경로가 form_tag 도우미와 함께 작동하지 않기 때문에 무언가 바보처럼 행동해야합니다. 나는 간단한 예에 고장했습니다경로가 form_tag 헬퍼에 대해 작동하지 않습니다

choose_devices POST /account/devices/choose(.:format) 
{:action=>"choose", :controller=>"devices"} 

페이지를로드 할 때 내가지고있어 오류는 다음과 같습니다 :

undefined local variable or method `choose_devices' for 
#<#<Class:0x00000100d8e270>:0x00000100d7efa0> 

<%= form_tag(choose_devices) do %> 
<% end %> 

레이크 노선 경로를 보여주고있다

다양한 경로를 시험해 보았습니다.이 경로는이 경로에서만 작동합니다.

user_session POST /users/sign_in(.:format) 
{:action=>"create", :controller=>"devise/sessions"} 

여기서 내가 뭘 잘못하고 있니?

답변

3

choose_devices은 이름이 지정된 경로입니다. Rails는 경로 도우미로 네임드 경로 당 두 개의 메소드를 자동으로 생성합니다. 그들은 항상 다음과 같은 규칙에 지정됩니다

named_route_path 
named_route_url 

당신은 사용할 수 있습니다 (경로는 일반적으로 권장 있지만). choose_devices_path을 사용하면 /account/devices/choose을 반환하고 choose_devices_url을 반환하면 localhost:3333/account/devices/choose과 같은 결과를 반환하거나 구성 파일에 호스트를 적절하게 설정하지 않으면 실제로 오류가 발생할 수 있습니다. (예 : _url 라우트 도우미를 사용했기 때문에 오랜 시간이 걸렸습니다. 부품).

rails routing guide.

에서 확인할 수 있습니다.
1

_path ie를 추가해야합니다.

choose_devices_path 
관련 문제