Мне нравится оборачивать свой JS для конкретной страницы в замыкание и вставлять в шаблон моего приложения код, который позволяет мне выборочно выполнять его.
поэтому мои js для конкретной страницы для контроллера «Events» могутвыглядят как:
events = {
onload: function() {
// put any page-specific onload code here
},
someOtherRoutine: function() {
}
}
в моем шаблоне приложения (application.html.erb), я добавляю:
<%= javascript_tag do %>
window.controller_name = <%= params[:controller] %>;
window.action_name = <%= params[:action] %>;
<% end%>
затем в application.js (если вы используете jQuery):
$(function() {
if(controller_name === 'events'){
events.onload();
}
else if(controller_name === 'anothercontroller'){
anothercontroller.onload();
}
// put any global onload functionality here...
});
Это имеет дополнительное преимущество, заключающееся в том, чтобы дать своего рода JS-пространство своего рода псевдониму для всех страниц, специфичных для вашей страницы.
Вероятно, существует более идиоматический способ rails / javascript;Я не программист JS, но я учусь любить язык немного ...