Как вы получаете доступ к параметру при создании сообщения - PullRequest
2 голосов
/ 28 июля 2011

Это означает, что в PostsController, def create, я хочу получить доступ к значению, которое передается в столбце для логического значения, согласен.При создании сообщения есть флажок, который устанавливает это значение.Checked делает согласие верным (1) и непроверенный делает согласие ложным (0).Прямо сейчас у меня есть код params[:post][:agree] для доступа к этому значению, но это, похоже, не работает.Когда я пытаюсь использовать это в выражении if, оно всегда выполняется, как будто params [: post] [: accept] всегда принимает значение true.

Помогите!Почему это не работает ??

: РЕДАКТИРОВАТЬ:

Post.rb (Post Model)

 attr_accessor :agree
 attr_accessible :agree

PostController (In def create)

@post.title = "AGREED!!" if params[:post][:agree] == "1"

Ответы [ 2 ]

3 голосов
/ 28 июля 2011

В Ruby ни число 0, ни строка "0" не имеют значения false в логическом контексте.Попробуйте if (params[:post][:agree]=="1")

1 голос
/ 28 июля 2011

Rails по умолчанию создает как флажок (с value="1"), так и скрытый элемент ввода (с value="0"), поэтому вы всегда получаете значение, возвращаемое обратно на сервер, что лично мне кажется глупым, и переопределяете его , Попробуйте вместо этого проверить params[:post][:agree].blank?.

Я не совсем уверен, что понимаю весь ваш вопрос. Вы говорили только о данных формы или о своих моделях?

...