отправить из формы HAML очищает данные сеанса (Rails3)? - PullRequest
1 голос
/ 15 апреля 2011

У меня есть следующая модель:

Project
 - name:text
 - description:text

И это фрагмент формы, которую я написал в HAML для нового проекта:

%p Create a new project:

%form{:method => "post", :action=>"/projects/"}
  %label{:for => "project-name[name]"} Name:
  %input{:type=>'text', :size=>40, :name=>'projectname', :id=>'project-name'} 
  %br/
  %label{:for => "project-description[description]"} Description:
  %textarea{:rows=>'10',:cols=>'10',:name=>'projectdescription',:id=>'project-description'}
  %br/
  %input{:type=>'submit', :value=>'Create'}

, когда пользователь нажимает кнопку Отправить,данные сеанса, кажется, очищены.

Вот почему я подозреваю это:

  • Я использую omniauth, когда пользователь входит в систему, я устанавливаю session[:user_id] = user.id
  • У меня перенаправление вКонтроллер проекта для обеспечения того, чтобы пользователь всегда выполнял вход для всех действий
  • , действия index и new обрабатываются правильно.
  • вместо того, чтобы обрабатываться действие создания, пользователь возвращается на страницу входа (согласно before_filter)
  • Я повторил ту же функцию с файлами erb, и проблем не возникло.Когда я помещаю файл new.haml, снова появляется ошибка.

Есть идеи?

1 Ответ

2 голосов
/ 15 апреля 2011

Я считаю, что здесь происходит то, что в ApplicationController у вас есть `protect_from_forgery ', но токен csrf не отправляется приложению. Проверьте, включен ли соответствующий файл rails.js, если это AJAX-вызов. А если вы используете form_for, то помощник автоматически вставит скрытое поле с токеном csrf.

...