這裏有個問題,比方說我有一些資源需要在同一個頁面上用標籤分隔,在這種情況下,它是不同類型的內容:視頻,pdf等等。我也有一部分被包含進去幾種不同的觀點,在這種情況下是搜索功能。局部做這樣的事情,讓你自定義它的各個部分:ActionView :: Template:render如何決定從哪裏加載?
在_search.html.slim :
.toolbar
.left
= render 'left_toolbar', f: f
項目樹看起來類似:
app
--views
----media
------index.html.slim
------videos_list.html.slim
------pdfs_list.html.slim
------videos
--------_left_toolbar.html.slim
------pdfs
--------_left_toolbar.html.slim
而且我有一個控制器,管理從各種內容資源頁面進入的請求:
在media_library_controller.rb:
def index
end
def videos
<sets everything needed to render a videos list, @videos etc.>
render :index
end
def pdfs
<sets everything needed to render a pdf list, @pdfs etc.>
render :index
end
而在index.html.slim
= render 'application/search'
ul.nav.nav-tabs
li.active
a href='#videosListTab' data-toggle='tab' Videos
li
a href='#pdfsListTab' data-toggle='tab' PDFs
ul.tab-content
li.tab-pane.active#videosListTab
.js-video-collection
= render 'videos_list' if @videos
li.tab-pane.active#pdfsListTab
.js-pdf-collection
= render 'pdfs_list' if @pdfs
我要的是能夠在控制器哪個文件夾left_toolbar.html定義。當search.html.slim去尋找它slim是尋找
我試過重寫controller_path
哪些看不到米工作。 prepend_view_path
似乎很有希望,但它將控制器名稱附加到視圖路徑的末尾,以便在設置它時擁有類似app/views/media_library/videos/media_library
的內容。有什麼建議?我不想在本地搜索部分。
對不起,也許它不清楚,但搜索部分依賴重載模板路徑。 search.html.slim所在的「共享」目錄中有一個名爲_left_toolbar.html.slim的文件,但它會被每個資源覆蓋,方法是在與控制器對應的每個文件夾中放入另一個名爲_left_toolbar.html.slim的文件。在查看_left_toolbar.html.slim的「共享」之前,首先在控制器的文件夾中導航相關內容。這個世界對於一個資源 - >一個文件夾來說很好,但是現在你可以看到,我有多個它會被掛起。 – ohhh