rails: javascript_include_tag отображает неверный путь - PullRequest
1 голос
/ 26 октября 2011

Я пытаюсь поместить вложенную форму в один из моих взглядов.Я установил Gem nested_form и выполнил шаги по установке.Последнее, что я сделал, это отредактировал файл app / view / layouts / application.html.erb, добавив в него эту строку

<%= javascript_include_tag "nested_form" %>

Но когда я смотрю на отрендеренную страницу, JavaScript не работает.Я изучил исходный код страницы и увидел, что отрендеренный код для javascript nested_form выглядит так:

<script src="/assets/nested_form.js" type="text/javascript"></script>

Так что он выглядит не в том месте.Этот файл .js находится в public / javascripts, а не в ресурсах.Я сделал что-то не так или мне нужно указать что-то еще в этом javascript_include_tag?

1 Ответ

6 голосов
/ 26 октября 2011

Начиная с рельсов 3.1 и далее, javascript_include_tag будет искать в конвейере ресурсов только javascripts. Если вы хотите добавить публичные / javascripts в ваш конвейер ресурсов, просто добавьте публичный путь к вашему

Rails.application.config.assets.paths

массив при инициализации приложения RoR, поскольку определяет пути, на которые смотрит конвейер ресурсов.

Так что нет, вы не сделали ничего плохого, используемый вами камень просто устарел и предназначен для рельсов 3.0-. Хотя я рекомендую попробовать переместить javascripts из общей папки в папку assets и посмотреть, работает ли он, потому что это предпочтительный способ поместить javascripts в приложение 3.1.

Другим способом решения вашей проблемы, хотя и не рекомендуется, является полное отключение конвейера ресурсов, если вы его не используете. Это делается путем удаления

config.assets.enabled = true

в вашем config / application.rb

Если вы хотите узнать больше о конвейере активов, у Railscasts есть видео об этом http://railscasts.com/episodes/279-understanding-the-asset-pipeline

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