我通過在我的CSS和JavaScript中應用適當的作用域解決了這個問題。例如。我的佈局文件的body標籤被賦予了動態ID通過以下方式:
<body id="<%= "#{params[:controller]}-#{params[:action]}" %>" data-controller=<%= params[:controller] %> data-action=<%= params[:action] %>>
而且在我users_index.css文件,這一行動是作用和使用風格:
body#users-index { .. }
我的CSS清單這樣長相像這樣:
/*
*= require self
*= require jqueryUi
*= require_tree .
*/
至於JavaScript中,我執行以下操作:
APP = { init: function() { ... },
users = {
index: function() {
//jQuery bindings here;
},
show: function() {
//More jQuery bindings here for this action;
}
}
}
現在,當頁面加載,我做到以下幾點:
(function() {
action = $("body").data("action");
controller = $("body").data("controller");
APP.init();
APP[controller][action]();
})();
一種變通方法的位,但我看到保羅的愛爾蘭和他的夥伴們做的JavaScript的事情,我看到瑞恩·貝茨從RailsCasts做CSS方法,所以我想它不能是100%不好的做法。