0
的routes.rbRails的路由控制器问题
match '/:permalink' => 'Pub#show_page'
在pub_controller
:
def show_page
@page = Page.find_by_permalink(params[:permalink])
if @page.nil?
render :status => 404
end
end
在show_page.html.erb:
<h1><%= @page.title %></h1>
<br>
<p><%= @page.content %></p>
然后我去到localhost:3000/non-existing-permalink
发生了什么事这里?我总是得到“nil:NilClass的未定义方法标题”,这意味着由于某种原因,def show_page允许浏览器进入视图。我已经尝试了if和if语句的每种可能的变体来尝试修复它,但它总是忽视if语句。
如果永久链接是正确的,例如.3000/existing-permalink /它会使页面正常工作。
为什么忽略if语句?我很困惑。
谢谢了..
如果您使用Rails3.0.x,您还需要阅读以下内容:请参阅http://techoctave.com/c7/posts/36-rails-3-0-rescue-from-路由错误的解决方案 – cailinanne 2011-06-05 02:29:07