Rails - Публикация логического значения (true или False) и обновление БД в контроллере - PullRequest
1 голос
/ 30 декабря 2010

в моем приложении Rails 3, я публикую с jQuery следующее:

http://0.0.0.0:3000/topics/read_updater?&topic_id=101&read=true

В моем контроллере:

  def read_updater
      current_user.topics.where(:topic_id => params[:topic_id]).update_all(:read => params[:read])

    render :json => {:status => 'success' }
  end

params [: topic_id] работает отлично, но params[: read] вставляет пустые значения в БД, даже если jQuery публикует либо true, либо false.Идеи?Я хочу, чтобы rails обновлял базу данных как true, так и false.

Спасибо

1 Ответ

2 голосов
/ 30 декабря 2010

Может быть update_all не разбирает переданную строку? params[:read] это строка:

params[:read]
=> "true"
# or
=> "false"

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

Попробуйте эту строку:

current_user.topics.where(:topic_id => params[:topic_id]).update_all(:read => true)

И посмотри, работает ли оно. Если да, то замените :read => params[:read] на что-то вроде :read => params[:read] == 'true'.

Я также надеюсь, что вы проверили, как выглядит хэш params в этом контроллере. Если нет, просто введите:

logger.debug params.inspect

в начале read_updater метода и проверьте логи, если все в порядке.

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