5

アポイントメントモデル(下記)にdescriptionという追加フィールドを保存するための適切な方法を見つけようとしています。私のモデルは次のように設定されています。

class Physician < ActiveRecord::Base
  has_many :appointments
  has_many :patients, through: :appointments
end

class Appointment < ActiveRecord::Base
  belongs_to :physician
  belongs_to :patient
end

class Patients < ActiveRecord::Base
  has_many :appointments
  has_many :physicians, through: :appointments
  attr_accessible :name
end

私の見解では、結合テーブルのデータを保存するためのチェックボックスを設定していますが、結合とともに保存される追加の「説明」フィールドにスライドしたいと思います。以下は私の見解です:

<div class="field">
  <fieldset>
  <legend>Patients</legend>
  <% @patients.each_slice(2) do |slice| %>
    <div class='row'>
      <% slice.each do |patient| %>
        <div class='span3'>
          <%= label_tag "physician_patient_ids_#{patient.id}" do %>
            <%= check_box_tag 'physician[patient_ids][]', patient.id,
                              @physician.patients.include?(patient),
                              { id: "physician_patient_ids_#{patient.id}" } %>
            <%= patient.name %>
          <% end %>
          <!-- need to add in description here somehow -->
        </div>
      <% end %>
    </div>
  <% end %>
  </fieldset>
</div>
4

1 に答える 1

2

を使用accepts_nested_attributes_forして関連付け属性を更新できます。

モデル内:

accepts_nested_attributes_for :appointments, :allow_destroy => true

ビューで:

<%= f.fields_for :appointments do |apt| %>
  <%= apt.object.patient.name %>
  <%= apt.text_field :description %>
<% end %>

http://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.htmlを参照

于 2013-01-09T17:50:26.127 に答える