如何存储选择信息

时间:2012-08-13 14:41:30

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我对如何存储collection_tag中的数据有点不确定。

这是我正在研究的模型

Customer         GenderManager      Genders
Id               Id                 Id
First            Customer_id        Description
Last             Gender_id
Email            Created_at
Password

这里的关系

Customer::class
  has_many :gender_managers
  accepts_nested_attributes_for :gender_managers, allow_destroy: :true
Gender::class
  has_many :gender_managers
GenderManagers:class
  belongs_to :customer_id
  belongs_to :gender_id

我目前的表格已经跟随

 <%= form_for @customer do |f| %>
    <div class="customer_edit_error_message">
            <%= render 'shared/error_messages' %>
    </div>
    <fieldset>
    <div class="customer_edit_name">
            <%= f.label :first_name %>
            <%= f.text_field :first_name %>
    </div>

    <div class="customer_edit_middle_name">
            <%= f.label :middle_name %>
            <%= f.text_field :middle_name %>
    </div>

    <div class="customer_edit_last_name">
            <%= f.label :last_name %>
            <%= f.text_field :last_name %>
    </div>

    <div class="customer_edit_gender">
    <%= f.collection_select(:customer, :id, Gender.all, :id, :description) %>
    </div>
    <div class="customer_edit_button">
            <%= f.submit "Save changes", class: "button_accept" %>
    </div>
  <% end %>

在customerController中不确定我是否必须做某事。我知道它给我的错误是不对的。它的形式让我担心选择

提前致谢。

1 个答案:

答案 0 :(得分:0)

我建议您为gender模型添加属性Customer。如果您想跟踪更改,可以创建GenderHistory模型并在Customer中执行以下操作:

class Customer < ActiveRecord::Base
  has_many :gender_histories
  before_update :track_gender

  def track_gender
    self.gender_histories.create(:gender => self.gender) if self.gender_changed?
  end
end

您的GendersGenderManager模型不是必需的。