Задать вопрос
@andreychumak
junior

Почему не приходят параметры в экшн?

Не могу понять в чем беда. Отправляю ajax'ом данные
$(document).ready(function() {
  $("#btn").click(function(event) {

    event.preventDefault();

    $.ajax({
      type: 'POST',
      url: '/moods',
      data: 'rating=4&remark=Boston'
    });
  });
});

В логах вижу:
D, [2017-07-19T23:08:22.527103 #19660] DEBUG -- :    (0.4ms)  BEGIN
D, [2017-07-19T23:08:22.542988 #19660] DEBUG -- :   SQL (1.0ms)  INSERT INTO "moods" ("created_at", "updated_at") VALUES ($1, $2) RETURNING "id"  [["created_at", "2017-07-19 20:08:22.527600"], ["updated_at", "2017-07-19 20:08:22.527600"]]
D, [2017-07-19T23:08:22.566071 #19660] DEBUG -- :    (22.1ms)  COMMIT
D, [2017-07-19T23:08:22.567071 #19660] DEBUG -- :    (0.4ms)  BEGIN
D, [2017-07-19T23:08:22.568624 #19660] DEBUG -- :    (0.3ms)  COMMIT
127.0.0.1 - - [19/Jul/2017:23:08:22 +0300] "POST /moods HTTP/1.1" 303 - 0.2144
127.0.0.1 - - [19/Jul/2017:23:08:24 +0300] "GET / HTTP/1.1" 200 3714 0.1664

Т.е. парамсы rating=4&remark=Boston не пришли.
+ возвращает 303 статус? почему, я же направляю запрос в экшн /moods, т.е. мой create.
проблема в том, что данные в принципе не доходят до экшна. убираю ajax и все нормально работает.
post '/moods' do
  @mood = Mood.create(params[:mood])

  if @mood.save
    redirect :'/'
  else
    redirect :'/'
  end
end


В общем, в чем тут беда?
  • Вопрос задан
  • 253 просмотра
Подписаться 2 Оценить 9 комментариев
Пригласить эксперта
Ответы на вопрос 2
@McBernar
Data через GET, а используете POST?
Ответ написан
Комментировать
Dem1
@Dem1
Ruby on Rails developer
data: { mood: { rating: 4, remark: 'Boston' } }
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы