处理未定义的变量

| 我在一个视图中渲染局部视图:
<%= render \'video\', :video => @video, :video_id => \'video_show_id\' %>
并在部分代码中包含以下代码:
<% if video_id %>
  <%= link_to \"video\", video.video_url, :class => \"oembed\", :id => video_id %>
<% else %>
  <%= link_to \"video\", video.video_url, :class => \"oembed\" %>
<% end %>
问题是该部分在我的应用程序中的许多地方都已渲染,在其他视图中,我不想将
:video_id
传递给该部分。因此,我的应用程序抛出错误“ѭ3”未定义。我可以在其他视图中将
:video_id => \"\"
传递给局部,但是由于局部在很多地方都有渲染,所以这很痛苦。有没有更简单的方法来解决这个问题?     
已邀请:
尝试
defined?
并不一定要紧,但实际上它是一个运算符。
<% if defined? video_id %>
    
我认为处理此问题的更好方法是创建一个帮助程序,然后管理需要馈入部分变量的变量的值。就像是:
module VideoHelper 

  def show_video(video, options = {})
    options[:id] ||= \"\"
    render \'video\', :video => video, :video_id => options[:id]
  end  

end
现在,您不必将其显示在视图中那么长的局部线,而可以将其缩短为show_video调用。 另外,我发现从长远来看,这将提供更大的灵活性,而我不得不少考虑一下此时部分需要哪些变量以及是否定义它们。     
将支票更改为
<% if defined? video_id %>
    

要回复问题请先登录注册