gpt4 book ai didi

ruby-on-rails - 多对多:has_many:通过关联表单与分配给链接模型的数据创建表单 View

转载 作者:行者123 更新时间:2023-12-04 05:39:15 25 4
gpt4 key购买 nike

我正在使用 Rails 指南中的一个示例:

http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association

此示例具有以下模型设置:

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 Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, :through => :appointments
end

我试图了解如何做以下两件事:
  • 我如何设置 View 以创建新患者并为他们分配预约时间的现有医生
  • 我如何为现有患者分配与新医生的预约和预约时间

  • 我浏览了处理嵌套表单的 RailsCasts 196 和 197,但我不知道它如何适用于这种情况。

    有人可以提供一个例子或给我指点这方面的指南吗?

    谢谢

    最佳答案

    首先,您必须将医师 ID 传递给您的 PatientsController#new行动。如果用户通过跟随链接到达那里,这将类似于

    <%= link_to 'Create an appointment', new_patient_path(:physician_id => @physician.id) %>

    或者,如果用户必须提交表单,您可以使用它提交一个隐藏字段:
    <%= f.hidden_field :physician_id, @physician.id %>

    然后,在 PatientsController#new :
    def new
    @patient = Patient.new
    @physician = Physician.find(params[:physician_id])
    @patient.appointments.build(:physician_id => @physician.id)
    end

    new.html.erb :
    <%= form_for @patient do |f| %>
    ...
    <%= f.fields_for :appointments do |ff |%>
    <%= ff.hidden_field :physician_id %>
    ...
    <% end %>
    <% end %>

    关于ruby-on-rails - 多对多:has_many:通过关联表单与分配给链接模型的数据创建表单 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11480939/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com