Rails AJAX загружает всю страницу в div «update» - PullRequest
1 голос
/ 17 марта 2012

Мне нужен какой-то код, который бы автоматически перезагружал посты и вставлял их в div post_container:

<%= link_to_remote "Update", {:action => 'ajax_update', :id => @posts, :update => 'post_container'}, :confirm => "Are you sure?" %>

Этот фрагмент rails в моем home.html.erb фактически занимает всю страницу (заголовок, заголовоктеги body) и помещает его в div post_container.Зачем?Кроме того, насколько я могу судить, функция ajax_update даже не вызывается.

Как мне поступить так, как я пытаюсь?И почему происходит загрузка всей этой страницы?Я использую Rails 2.3.11

(правка: также, когда вы нажимаете на ссылку, диалоговое окно подтверждения отсутствует)

РЕДАКТИРОВАТЬ 2: вывод html фрагмента кода:

<a confirm="Are you sure?" href="#" onclick="new Ajax.Updater('post_container', '/home', {asynchronous:true, evalScripts:true, parameters:'authenticity_token=' + encodeURIComponent('uaqM0Ie8to5pprvE6WcF416DN0vNeyO7Xa+JM6VZFY4=')}); return false;">Update</a>

Ответы [ 2 ]

0 голосов
/ 18 марта 2012

Найден правильный способ сделать это:

<%= link_to_remote "Update",:update => 'post_container', :url => {:action => 'ajax_update', :id => @posts, }, :confirm => "Are you sure?" %>

На основе информации из документации по Rails 2.3.11 API:

http://api.rubyonrails.org/v2.3.11/classes/ActionView/Helpers/PrototypeHelper.html#M002185

ТакжеМетод periodically_call_remote, найденный на этой странице, также полезен для автоматических вызовов, которые не требуют нажатия.

0 голосов
/ 17 марта 2012

В вашем действии контроллера используйте: layout => false

def ajax_update
  @posts = Post.find(@posts)
  render :layout => false
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...