Разработать сеанс, немедленно истекающий при вызове .js [AJAX] - PullRequest
9 голосов
/ 19 февраля 2011

Путем большого количества проб и ошибок я сузил проблему до строки 5 ниже.По какой-то причине ответ .js завершает сеанс пользователя.Использование 3.0.4 и разработка 1.1.7 (и jQuery 1.5).

Кроме того, @organization обновляется и в журнале отображается сообщение «Завершено» 200 OK, поэтому пользователь не знает, что он / она вышел из системы довыполняется следующее действие.

Любая помощь и руководство приветствуются.

*Controller*
1   def make_featured
2     @organization = Organization.find(params[:id])
3     @organization.is_featured ? @organization.update_attribute(:is_featured,"false") :   @organization.update_attribute(:is_featured,"true")
4       respond_to do |format|
5         format.js {render :action => "update", :layout => false}
6       end
7   end

и

*update.js.haml*
$("#organization_" + "#{@organization.id}" ).replaceWith("#{ escape_javascript(render :partial => 'users/supplier_view', :locals => {:organization => @organization}) }");

1 Ответ

16 голосов
/ 19 февраля 2011

Большое спасибо Брэндону Мартину из Devise Google Group за то, что он указал мне правильное направление ...

Это результат исправления безопасности Rails 3.0.4.

http://weblog.rubyonrails.org/2011/2/8/csrf-protection-bypass-in-ruby-on-rails

Через час или около того работы над этим сообщением в блоге, вот несколько советов для других ...

  • Это было исправлено в rails.js - так что вы не можетене нужно взламывать, исправлять или заново изобретать колесо.
  • Если вы используете rails.js из коробки, обновите его - rake rails:update (думаю, но я использую настроенный файл rails.js)
  • Если вы используете собственный файл rails.js, перейдите и получите исходный код самой последней версии здесь: https://github.com/fermion/jquery-ujs/blob/master/src/rails.js
  • поместите ваш помощник csrf_meta_tag над вашими javascript_include_tag s

Надеюсь, это поможет!

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