0

저는 레일스를 처음 접했고 다음 작업의 이해를 도울 수 있기를 바랍니다.기존 콘트롤러에 메소드 추가하기

현재 프로젝트 (projects_controller.rb)라는 컨트롤러가 있습니다. ROR의 각 컨트롤러는 index, new, create, edit, show 등과 같은 기본적인 (고유 한) 메소드를 가지고 있습니다. "help"라는 메소드와 뷰를 추가하여 도움말 정보를 표시하고 싶습니다.

현재 사용자는 많은 프로젝트를 만들 수 있습니다. 프로젝트에는 사용자가 채운 일련의 필드가 들어 있습니다. 사용자가 (프로젝트 화면의 링크를 통해) 각 프로젝트 필드에 대해 설명하고 가장 잘 채울 수있는 방법을 설명하는 도움말 페이지를 추가하고 싶습니다. 나는 이것이 독립적 인 페이지 (프로젝트 페이지에 표시된 정보가 아니라)가되고 싶습니다. 로컬 호스트 : (프로젝트 편집 할 때) 지금 현재로

는 프로젝트에 대한 URL은 3001/프로젝트/아이디/편집

내가 로컬 호스트 될 수있는 도움말 파일에 대한 경로 싶습니다

: 3001/projects/id/help

위의 경로에 도움말 파일을 배치하려면 프로젝트에서 "도움말"이라는 새로운 방법을 만들어야한다고 가정하고 올바르게 수정해야합니다. 제어 장치? 그렇다면 routes.rb에 추가해야하는 기능이 있습니까? 그리고 Haml에서 link_to 함수를 사용하여 링크를 만들면됩니까?

혼란 스럽거나 많은 질문이 있으면 죄송합니다. 시간 내 주셔서 감사합니다. 올바른 경로에 있는지 여부에 대한 의견이 있으면 알려주십시오. 정말 고맙습니다!

답변

1

난 당신이

resources :products do 

end 

그냥

resources :products do 
    get :help, :on => :member, :as => :help 
end 

와 이것을 대체 할 그리고 당신은 ERB를 사용하여 r에 경우 (컨트롤러에 메서드를 추가하고보기 이름 help.erb.html를 추가 노선이가 현재 생각)보기/제품 폴더에 있습니다.

help_path 및 help_url을 사용할 수 있습니다.

+0

Dnyan, 정말 고마워요 ... 이것은 대단한 도움이되었습니다. 내 유일한 질문은 이제 다른보기에서 help.html.haml에 연결하는 것입니다. help_path가 작동하지 않습니다. 도움말 컨트롤러가 없기 때문일 수 있습니까? 기존의 (프로젝트) 컨트롤러에있는 메소드 일뿐입니다. 지금까지의 모든 도움에 감사드립니다! –

+0

는 products_help_path 및 products_help_url을 사용합니다. –

관련 문제