Я пытаюсь использовать jQuery, и все было большим, до сих пор, когда я пытаюсь представить частичное и добавить его отделению. Вот то, как у меня есть настроенный:
У меня есть действие, которое отвечает на js:
def index
@objects = Object.find(:all)
respond_to do |format|
format.js
end
end
И шаблон, названный index.js.erb с некоторым JavaScript в нем:
alert("hello world");
Firebug возвращает ответ "текста/JavaScript", содержащий:
alert("hello world");
Но аварийное окно не появляется, и при этом любой другой JavaScript не работает. Я проверил http://railscasts.com/episodes/136-jquery И более или менее следую вперед. Я попробовал несколько других вещей, как использование .rjs вместо .erb и помещения этого в моем шаблоне:
page.alert("hello world");
но я получаю тот же точный результат, и браузер никогда не выполняет JS.
Кто-либо знает, почему JavaScript не выполняется?
Я выполняю направляющие 2.3.4.
Вы должны вызвать его с вашего вида, иначе он никогда не будет выполнен.
пример контроллера:
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"