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
ですか?