사용자에게 페이지를 표시하는 "pages_controller"컨트롤러가있는 Ruby on Rails 응용 프로그램을 작성하고 있습니다. 표시 할 수있는 3 가지 다른 유형의 페이지가 있으며 각각의 경우 백엔드에서 다른 일이 발생해야하므로 컨트롤러 내에서 3 가지 방법으로 기능을 나누기로 결정했습니다. 사용자가 페이지를 요청하면 "show"메서드가 호출되어 페이지가 인지 여부 1. 사용자에게 속함 2. 다른 사용자가 소유하고 요청한 사용자가 볼 수 있음 3. 소유 을 다른 사용자에게 보내고 요청한 사용자가 볼 수 없으면 (무단으로)레일즈 컨트롤러에서 뷰를 조건부로 렌더링하는 메서드 호출
적절한 방법을 호출하여 페이지를 표시합니다.
def show
if (something)
showMine
elsif (something else)
showAnother
else
showUnauthorized
end
end
def showUnauthorized
respond_to do |format|
format.html # showUnauthorized.html.erb
end
end
def showMine
respond_to do |format|
format.html # showMine.html.erb
end
end
def showAnother
respond_to do |format|
format.html # showAnother.html.erb
end
end
내가 레일 "쇼"가 호출 될 때 뷰를 렌더링하고 싶어하기 때문에 오류 누락 템플릿을 얻고 있지만, "쇼"때 내가 어떤 뷰를 렌더링하지 않으 : 코드는 다음과 같이 보입니다 라는. 간단히 "show"가 올바른 메소드를 호출하고, 해당 메소드 (showMine, showAnother 또는 showUnauthorized)의 해당 뷰가 렌더링 되기만하면됩니다. 어떻게해야합니까? 아니면 내가 잘못된 방법으로 전적으로 그렇게할까요?
* showUnauthorized *, * showMine *, * showAnother * 메소드 내부에서'render 'my_custom_view''를 사용해보십시오. 작동하지 않는다면,'show :'에'render : nothing => true'를 지정하십시오. 또한 특별한 방법을 비공개로 선언하는 것이 좋습니다 (문제와 관련 없음). –