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