Ruby on rails 不指定ID的资源路径
如果我的路径在特定资源上,我希望呈现部分路径,但我不希望指示资源的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.
标记之间的部分中的元数据标记:
<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。谢谢