0

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 では、何かをしなければならないかどうかわかりません。エラーが発生するのは正しくないことはわかっています。そのような選択で私を心配するそのフォーム

前もって感謝します。

4

1 に答える 1

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モデルは必要ありません。

于 2012-08-14T06:36:42.137 に答える