如果我的路径位于特定资源上,我想呈现部分内容,但我不想指示资源的 ID。
<head>
如果路径在任何视频资源上,我想加载在我的标签之间部分保存的元数据标签:
<head>
<%= render 'layouts/partial_name' if request.fullpath == video_path(params[:id]) %>
</head>
但是,这仅在我请求视频资源时才有效,例如'/videos/92'
.
如果我的路径位于特定资源上,我想呈现部分内容,但我不想指示资源的 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>
在要添加元标记的视图中:
<% content_for :head do %>
<%= render :partial => 'meta_tags' %>
<% end %>
<!-- ... -->
此用法是该方法的典型示例content_for
。
我相信这就是你要找的...
<%= render 'layouts/partial_name' if params[:controller] == "videos" && params[:action] == "show" %>
理想情况下,您需要为负责视频资源的控制器自定义布局。可以在此 railscast http://railscasts.com/episodes/7-all-about-layouts了解有关布局的更多信息。
对于快速而肮脏(非常非常肮脏)的解决方案,您可以检查 request.fullpath 是否包含“videos”字符串。例如。
<%= render 'layouts/partial_name' if request.fullpath =~ /videos/ %>