2009-08-29 3 views
19

컨트롤러없이 컨트롤러를 만들 수 있습니까? 예를 들어, 다른 페이지로 연결되는 페이지가 있다고 가정 해 봅시다. 더미 컨트롤러를 만들어야하나요, 아니면 내 루트 파일에서 뭔가를 할 수 있습니까?컨트롤러가없는 레일보기

답변

14

아니요. 모든 요청은 컨트롤러를 거쳐야합니다.

저는 PagesController, map.page ":action", :controller => "pages"을 갖고 있습니다. 그렇게하면 app/views/pages/foo.erb을 만들고 추가 코드없이 /foo에서 사용할 수 있습니다.

+4

Thoughtbot에는 유용한 플러그인이 있습니다. http://github.com/thoughtbot/high_voltage/tree/master – jonnii

+0

이것은 오래된 것 같습니다 ... ...? 처음에는지도가 정의되지 않았다고합니다. 그런 다음 routes.rb 위에지도로 매개 변수로 map을 추가했습니다. 그런데 레일스는이 URL [route-in-rails-3] (https://blog.engineyard.com/2010/the-lowdown-on-routes- in-rails-3 /) – msanjay

3

또 다른 옵션은 응용 프로그램의 일부로 필요하지 않은 경우/public 디렉토리에 정적 HTML 파일을 추가하는 것입니다.

0

번호 : 여기에 링크입니다.

보기 폴더에 index.html.erbcontact.html.erb과 같은 페이지가있는 경우 contact이라는 더미 컨트롤러를 만들어야합니다. 그런 다음 index.html.erb에서 contact.html.erb에 연결할 수 있습니다. <%= link_to 'contact', :controller => "ads", :action => "contact" %> 링크를 "ads"-> 컨트롤러 이름으로 지정하십시오.

19

저는 8 월의 대답을 좋아하지만 약간 다른 방법이 있습니다.

당신은 단지에 폴더를 추가 할 수 있습니다 ...의 당신이 컨트롤러를 추가

/any/path/somefile.html.erb

를 추가하지만하고 싶은 말은하자 보기라는 "응용 프로그램", 해당 디렉토리에 파일을 만듭니다.

다음 루트 파일에

0을 추가하십시오.
match '/any/path/somefile' => 'application#somefile' 

귀하의 ERB는 여전히 당신이 당신의 레이아웃을 얻을, 평가하고, 당신은 당신이 원하는 경로 ... 을 (이 모든 페이지 컨트롤러에 대한 필요성을 제거하는 것입니다 않습니다)

는 희망이 도움이 만들 수 있습니다 ...

관련 문제