如果我的路徑位於特定的資源上,但我不想指出資源的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。 –
謝天謝地。很好的編輯。 –