Использование Rails 4.Сохранение дополнительных атрибутов в соединительной таблице для Rails 4
# premedication.rb
class Premedication < ActiveRecord::Base
has_many :premedication_dosages
has_many :patients, through: :premedication_dosages
end
# patient.rb
class Patient < ActiveRecord::Base
has_many :premedication_dosages
has_many :premedications, through: :premedication_dosages
end
# premedication_dosage.rb
class PremedicationDosage < ActiveRecord::Base
belongs_to :patient
belongs_to :premedication
end
# patients_controller.rb
def patient_params
params.require(:patient).permit(
premedication_ids: [],
)
end
# premedication_dosages join table
class CreatePremedicationDosage < ActiveRecord::Migration
def change
create_table :premedication_dosages do |t|
t.belongs_to :patient, index: true
t.belongs_to :premedication, index: true
t.integer :dosage
end
end
end
# _form.html.erb
<%= form_for @patient do |f| %>
<%= f.label :premedication %><br>
<%= f.collection_check_boxes :premedication_ids, Premedication.all, :id, :name do |b| %>
<div class="collection-check-box">
<%= b.check_box %>
<%= b.label %>
</div>
<% end %>
<% end %>
Теперь выше работает отлично, храня premedication_id
и patient_id
в premedication_dosages
таблице, но есть колонка в premedication_dosages
называется dosage
, который Я хочу сохранить значение. Конечный результат я хочу в premedication_dosages
таблице:
premedication_id: 1
patient_id: 1
dosage: 10
Как следует текстовое поле для dosage
быть включены в форме?
Спасибо @Rich Peck, но мне нужно, чтобы это был флажок, где он может быть несколькими, и каждый выбор принимает значение «дозировка» (если выбрано). – Victor