Вопрос новичка: почему выбранное значение из выпадающего меню не передается моему контроллеру? - PullRequest
0 голосов
/ 13 января 2011

У меня есть модель «MyObject», которая содержит свойство под названием «цвет», значение этого свойства выбрано из списка COLORS = ['red', 'black', 'yellow'].В моем приложении я получил один экземпляр «MyObject» из базы данных и показал его на странице в виде строки.Я использовал помощник формы select в rails 3 и позволил пользователю выбрать цвет из выпадающего меню.

Я использовал помощник формы следующим образом:

select("myobject", COLORS, { :include_blank => false }),

На странице просмотра я успешно получаю цвета в виде раскрывающегося меню со значением по умолчанию в качестве выбранного.

НО , когда я выбираю другой цвет изВ меню и нажмите кнопку «Сохранить», «myobject», передаваемый моему контроллеру, всегда содержит значение цвета по умолчанию вместо выбранного, почему ??

Я использую button_to("save", myobject_path(myobject), :method=>:put), который передает объект моему контроллеру.1015 *

в сторону моего контроллера, метод обновления:

class MyobjectsController < ApplicationController
...
def update

     @myobject = myobject.find(params[:id])

     if @myobject.update_attributes(params[:myobject])
      puts @myobject.color #always get default value
      redirect_to myobject_path
    else
      redirect_to myobject_path
    end
  end
...
end

Кто-нибудь может объяснить мне, почему я всегда получаю значение цвета по умолчанию вместо выбранного?

1 Ответ

0 голосов
/ 13 января 2011

Не видя полного кода просмотра, я не уверен в этом, но, скорее всего, ваша форма, содержащая <select>, на самом деле не отправляется, а button_to просто создает свою собственную форму и отправляет.Вы должны поставить myobject_path(myobject), :method => :put на самой форме, а не кнопку отправки.И не используйте button_to для этого, используйте submit_tag или что-то еще.

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