我不知所措。我有一个form_for,可以在has_many through关系中创建一个新记录。我要做的是找出连接表中是否有特定值,并根据结果保存不同。
所以,使用guide中的示例,我有:
class Physician < ActiveRecord::Base
has_many :appointments
has_many :patients, through: :appointments
accepts_nested_attributes_for :appointments, :patients
end
class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end
class Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, through: :appointments
accepts_nested_attributes_for :appointments, :physicians
end
我使用<%= form_for(@physician) do |f| %>
获得了一个有效的form_form
在表单内部,我已将此行包含在一个非模型变量中,以指定特定患者:<%= hidden_field_tag :patient_id, :value => @patient_id%>
。我已经检查了所有值,并且它们很好地传递到控制器的创建操作中。这就是我的问题出现的地方:
假设我正在尝试为现有的约会分配第二位医生。
在医生控制器的创建操作中,我试图在约会表中搜索:使用隐藏字段传入的patient_id。我想以不同的方式保存结果,具体取决于该患者是否有现有的预约。如果我找不到患者,我想为该医生创建患者和预约。如果我在约会表中找到患者,我想创建一个记录,通过约会表将医生与患者联系起来。
我希望这有点清楚吗?