Rails 3.2プロジェクトでは、コントローラーにshow_html関数があります。データベース内で特定のURLを持つサイトを見つけることができる場合、それをビューに渡します。それ以外の場合は、http://www.google.comにリダイレクトします
def show_html
site_list = Site.where(:url => params[:url])
if site_list.length > 0
site = site_list.first
else
redirect_to "http://www.google.com"
end
@html = site.html
render "show_html.html.erb"
end
私がそれをテストしたときsite_list.length > 0、それは動作します。ただし、の場合site_length_list = 0、エラーが発生しますundefined method 'html' for nil:NilClass。なぜそれはelseステートメントに入ってレンダリングしないのgoogle.comですか?