我正在编写一个带有名为“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
我收到模板丢失错误,因为 rails 想要在调用“show”时呈现视图,但我不希望在调用“show”时呈现任何视图。我只是想让“show”从那里调用正确的方法,并渲染该方法的相应视图(showMine、showAnother 或 showUnauthorized)。我怎样才能做到这一点?还是我完全以错误的方式解决这个问题?