Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 不指定ID的资源路径_Ruby On Rails_Ruby_Routes - Fatal编程技术网

Ruby on rails 不指定ID的资源路径

Ruby on rails 不指定ID的资源路径,ruby-on-rails,ruby,routes,Ruby On Rails,Ruby,Routes,如果我的路径在特定资源上,我希望呈现部分路径,但我不希望指示资源的ID 如果路径位于任何视频资源上,我想加载位于我的标记之间的部分中的元数据标记: <head> <%= render 'layouts/partial_name' if request.fullpath == video_path(params[:id]) %> </head> 不过,这仅适用于我请求视频资源的情况,例如,'/videos/92'您可以尝试请求.full\u path.

如果我的路径在特定资源上,我希望呈现部分路径,但我不希望指示资源的ID

如果路径位于任何视频资源上,我想加载位于我的
标记之间的部分中的元数据标记:

<head>
  <%= render 'layouts/partial_name' if request.fullpath == video_path(params[:id]) %>
</head>


不过,这仅适用于我请求视频资源的情况,例如,
'/videos/92'

您可以尝试
请求.full\u path.start\u with?视频路径
,或
请求。完整路径=~/^\/video/

然而,有一种更好的方法可以做到这一点。在布局中:

<head>
  <!-- ... -->
  <%= yield :head %>
</head>

在要添加元标记的视图中:

<% content_for :head do %>
<%= render :partial => 'meta_tags' %>
<% end %>
<!-- ... -->

'元标记'%>

此用法适用于
方法的
内容。\u

理想情况下,您需要负责视频资源的控制器的自定义布局。更多关于布局的信息可在本railscast学习

对于快速且脏(非常脏)的解决方案,您可以检查request.fullpath是否包含“videos”字符串。例如

<%= render 'layouts/partial_name' if request.fullpath =~ /videos/ %>

我相信这就是你想要的

<%= render 'layouts/partial_name' if params[:controller] == "videos"  && params[:action] == "show" %>


if request.fullpath=~/\A\/videos/
我们不需要知道您是否是新手。好问题就是好问题,不管怎样。做你的尽职调查,在你问之前搜索SO和谷歌,然后,如果你还没有找到你想知道的,就直接问。欢迎来到Stack Overflow。谢谢,铁皮人。编辑得很好。他为什么要做一个单独的布局,只是为了给
添加一些内容?大概如果他想在视频页面的标题部分呈现特定的部分,那么页面本身肯定有不同之处。我猜部分是样式表还是js?然后引入新的布局可能更有意义。他说“我想加载元数据标签”,大概是
“description”
@willglynn point.:)不知怎的,我错过了meta标签部分。nan和willglynn,这是一个很好的反馈。我本可以更强调我对元标记的使用。我喜欢这样,但是视频控制器中的所有方法都会加载部分,包括索引、编辑、新建等。我在元标记中引用变量,因此会出错。如果params[:controller]=“videos#show”
注册,它看起来不像
。还有一个params[:action]工作起来像个符咒,willglynn。谢谢