如果我的路径位于特定的资源上,但我不想指出资源的ID,我想渲染一个局部。没有指定ID的资源路径
我想加载我<head>
标签之间的部分持有元数据标签如果路径上的任何视频资源:
<head>
<%= render 'layouts/partial_name' if request.fullpath == video_path(params[:id]) %>
</head>
这只作品,不过,如果我要求的视频资源,例如,'/videos/92'
。
如果我的路径位于特定的资源上,但我不想指出资源的ID,我想渲染一个局部。没有指定ID的资源路径
我想加载我<head>
标签之间的部分持有元数据标签如果路径上的任何视频资源:
<head>
<%= render 'layouts/partial_name' if request.fullpath == video_path(params[:id]) %>
</head>
这只作品,不过,如果我要求的视频资源,例如,'/videos/92'
。
您可以尝试request.full_path.starts_with? videos_path
或request.full_path =~ /^\/video/
。
但是,有一个更好的方法来做到这一点。在您的布局:
<head>
<!-- ... -->
<%= yield :head %>
</head>
在您要添加meta标签的观点:
<% content_for :head do %>
<%= render :partial => 'meta_tags' %>
<% end %>
<!-- ... -->
这种用法是canonical example为content_for
方法。
工程就像一个魅力,willglynn。谢谢。 –
理想情况下,您需要一个负责视频资源的控制器的自定义布局。关于布局的更多信息可以在这个railscast http://railscasts.com/episodes/7-all-about-layouts上了解到。
对于一个快速和脏(非常非常肮脏)的解决方案,你可以检查request.fullpath是否包含“视频”字符串。例如。
<%= render 'layouts/partial_name' if request.fullpath =~ /videos/ %>
我相信这是你要找的内容...
<%= render 'layouts/partial_name' if params[:controller] == "videos" && params[:action] == "show" %>
我喜欢这一点,但部分将加载视频控制器中的所有方法,包括索引,编辑,新等。我在元标记中引用变量,所以它出错。它看起来不像'if params [:controller] ==“videos#show”'寄存器。 –
还有一个params [:action] – rthbound
'如果request.fullpath =〜/ \ A \ /视频/' – apneadiving
我们并不需要知道你是新的东西。无论如何,一个好问题是一个好问题。做你的尽职调查,然后在你提出问题之前搜索SO和Google,然后,如果你还没有发现你想知道的内容,就去问问。欢迎来到Stack Overflow。 –
谢天谢地。很好的编辑。 –