Как сохранить выбор радиокнопок в моей БД с помощью Rails 3? - PullRequest
1 голос
/ 27 апреля 2011

Я использую Rails 3 и Mongoid.

Я могу хранить текстовые поля и выбирать поля, но не вижу, как выяснить, как сохранить опцию радио в БД при отправке формы.Вот мой код ...

Модель

class Somerandomname
    include Mongoid::Document

    field :name
    field :option   
end

Контроллер

  def create
    @somerandomname = current_user.somerandomnames.new(params[:somerandomname])

    respond_to do |format|
      if @somerandomname.save
        format.html { redirect_to(@somerandomname, :notice => 'Somerandomname was successfully created.') }
      else
        format.html { render :action => "new" }
      end
    end
  end

Просмотр

<%= f.label :name , "Name:" %>
<%= f.text_field :name %>


<%= radio_button_tag(:option, "option1") %>
<%= label_tag(:option_option1, "option 1") %>
<br />
<%= radio_button_tag(:option, "option2") %>
<%= label_tag(:option_option2, "option 2") %>

Что мне нужно в моей модели и файле контроллера для записи выбора в мою БД?

Ответы [ 3 ]

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

Попробуйте изменить вид на:

<%= f.label :name , "Name:" %>
<%= f.text_field :name %>


<%= f.radio_button(:option, "option1") %>
<%= f.label(:option_option1, "option 1") %>
<br />
<%= f.radio_button(:option, "option2") %>
<%= f.label(:option_option2, "option 2") %>

Это приведет к тому, что сгенерированные поля ввода будут иметь правильное пространство имен @name внутри: somerandomname.

0 голосов
/ 27 апреля 2011

Что касается параметров, переключатели похожи на флажки: все они имеют имя параметра и значение, которое они отправляют при проверке.Единственное отличие состоит в том, что определенная группа переключателей снимает флажки друг с другом, когда проверяется, так что можно выбрать только одну из них.

Итак, в вашем примере у вас будет поле с именем 'option' в вашей базетаблица, которая будет установлена ​​из params [: option], которая будет равна «option1», «option2» или «option3».

0 голосов
/ 27 апреля 2011

у вас может быть поле с именем option в вашей модели. И в вашем контроллере вы можете сделать

model.option = params[:option]
model.save

в зависимости от того, какая радиокнопка выбрана, будет установлено значение params [: option] (значение выбранного радиокнопки).

...