對此,可能沒有正確的答案,但我想獲得有關最佳實踐的信息。區分儀表板佈局和其他視圖
我已經建立了一個rails應用程序。在應用程序中,有一個儀表板視圖和一個常規視圖。在application.html.erb中,我將包含兩個視圖的標題和頁腳,但區分這兩個視圖的最佳做法是什麼?
兩種方式我一直在考慮是:
- 包括可變(is_dashboard_view),並檢查它。
- 更改URL的有一個共同的模式,像/儀表板/ ...
我對選項1傾斜,因爲它似乎是一個麻煩的少。有沒有其他的選擇,什麼是最佳做法。
對此,可能沒有正確的答案,但我想獲得有關最佳實踐的信息。區分儀表板佈局和其他視圖
我已經建立了一個rails應用程序。在應用程序中,有一個儀表板視圖和一個常規視圖。在application.html.erb中,我將包含兩個視圖的標題和頁腳,但區分這兩個視圖的最佳做法是什麼?
兩種方式我一直在考慮是:
我對選項1傾斜,因爲它似乎是一個麻煩的少。有沒有其他的選擇,什麼是最佳做法。
在這裏,你需要創建一個新的佈局dashboard.html.erb
類似application.html.erb
。在這個新的佈局,可以只使用要加載儀表板視圖這些資產,並可以使用特定的佈局像這樣的....
class MyController < ApplicationController
layout 'dashboard'
end
每次動作軌道佈局,可以使用一種方法來設置佈局。
class MyController < ApplicationController
layout :resolve_layout
# ...
private
def resolve_layout
case action_name
when "new", "create"
"some_layout"
when "index"
"other_layout"
else
"application"
end
end
end
在這種情況下,我們在app>views>layouts
文件夾中創建新佈局other_view.html.erb
。然後需要使用它的控制器,可以呈現爲:
class OtherController
layout 'other_view'
// statements/methods
end
如果沒有定義控制器上的佈局名稱,它將使用application.html.erb
爲默認值。
OR
您可以從params[:controller]
檢查目前你是哪個控制器。
你可以用戶不同的佈局不同的看法。
或
您可以使用控制器名稱/操作名稱進行區分。
params[:controller]
params[:action]
,添加
layout :choose_layout
def choose_layout
return 'dashboard_layout' if action_name == 'dashboard'
'view_layout'
end
其中兩個佈局在佈局/文件夾中。你可以根據你的動作/控制器/參數改變'if condition'。