Как сохранить слишком большой файл application.js в приложении Rails и как его структурировать? - PullRequest
1 голос
/ 07 октября 2011

Или: Как мне структурировать код в моем файле application.js моего приложения Rails 3.0.10 или распределить его ( логически ) по различным файлам, чтобы я знал, что происходит,?

В настоящее время мой application.js работает с 700 строками кода.Он в основном плоский с большим количеством jQuery-битов, таких как:

//////////// the following code is for the need_email_confirmation page and user_sign_in page
$('body').delegate('#sign_up_resend_confirmation', 'click', function(event) {
  event.preventDefault();
  $('form#new_user').submit();
});

Иногда я использую разделители комментариев, как указано выше, для создания разных разделов, но это вроде как ... (нормально ли говорить "гетто"?),Много кода, как указано выше, все внутри $(document).ready(function() {... кусок.Иногда я хочу предотвратить слишком много отступов, поэтому пишу функцию верхнего уровня, например:

$('body').delegate('#new_canvas_item_cancel', "click", hideEditorAndPreventServerHit);
$('body').delegate('#edit_canvas_item_cancel', "click", hideEditorAndPreventServerHit);

function hideEditorAndPreventServerHit(event) {
  $(this).closest('div.new_item_div, div.edit_canvas_item').slideUp();
  event.preventDefault();
}

Каковы лучшие практики?

Ответы [ 2 ]

0 голосов
/ 07 октября 2011

Похоже, вы хотите Rails 3.1.Он представил конвейер ресурсов, который позволяет разбивать ваш Javascript и CSS на небольшие файлы, которые автоматически компилируются в готовые к работе файлы.

Вы даже можете использовать абстракции над Javascript и CSS (Coffeescript, SCSS или даже ERBшаблоны), которые автоматически компилируются в JS и CSS.

Основная идея заключается в том, что ваш application.js находится внутри app/assets/javascripts и содержит следующее для включения всех других файлов JS в этот каталог:

//= require_tree .

Подробнее см. В руководстве Rails !

0 голосов
/ 07 октября 2011

Вы не упомянули, на какой конкретной версии Rails вы находитесь, но если у вас есть возможность оставаться в курсе, попробуйте воспользоваться преимуществами конвейера ресурсов Rails. (нужен Rails 3.1)

http://guides.rubyonrails.org/asset_pipeline.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...