ユーザーにページを表示する「pages_controller」というコントローラーを使用して、RubyonRailsアプリケーションを作成しています。表示できるページは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」が呼び出されたときにrailsがビューをレンダリングしたいのですが、「show」が呼び出されたときにビューをレンダリングしたくないため、テンプレートが見つからないというエラーが発生します。そこから「show」で正しいメソッドを呼び出し、そのメソッドに対応するビュー(showMine、showAnother、またはshowUnauthorized)をレンダリングしたいだけです。これどうやってするの?それとも私はこれを完全に間違った方法で行っていますか?