Rails, jQuery,.js.erb файлы, JS не выполняется браузером
Я пытаюсь использовать jQuery, и все было замечательно, до сих пор, когда я пытаюсь сделать частичное и добавить его в div. Вот как я его настроил:
У меня есть действие, которое отвечает на js:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js
end
end
И шаблон, называемый index.js.erb с некоторым javascript в нем:
alert("hello world");
Firebug возвращает ответ "text/javascript", содержащий:
alert("hello world");
Но окно предупреждения не появляется, и никакой другой JavaScript не работает. Я проверил http://railscasts.com/episodes/136-jquery
И более или менее следую дальше. Я попробовал несколько других вещей, например, используя .rjs вместо .erb и поместив это в свой шаблон:
page.alert("hello world");
но я получаю тот же точный результат, и браузер никогда не запускает JS.
Кто-нибудь знает, почему JavaScript не выполняется?
Я запускаю Rails 2.3.4.
Ответы
Ответ 1
Вы должны вызвать его из своего представления или он никогда не будет выполнен.
пример контроллера:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js{
render :text => "alert('hello')"
}
end
end
и index.html.erb с:
<script type="text/javascript">
$(function(){
$.ajax({ url: '/controller', type: 'get', dataType:'script' });
});
</script>
замените '/controller' на фактический url, который выполняет это действие индекса контроллера, по умолчанию для PostsController будет "/posts" и т.д.
если вам нравится rjs, вы удаляете {} и продолжаете в нем в контроллере и создаете index.js.erb или index.rjs с помощью:
page.alert("hello world")
или
page << "hello world"