Rails 5嵌套表单查找或创建

时间:2017-05-28 21:03:55

标签: ruby-on-rails forms ruby-on-rails-4 nested

我有两个模型RunPatientRun belongs_to PatientPatient has_many运行。

Run模型上,我正在使用accepts_nested_attributes,使用fields_for通过常规Rails表单将患者的信息输入到运行中。

现在我有一个基本形式(精简版),如下所示:

<%= form_for(@run) do |f| %>
   <%= f.fields_for :patient do |p| %>
     <%= p.text_field :patient_name, placeholder: 'John Doe', class: 'form-control' %>
    <% end %>
<% end %>

我能够在表单内创建一个患者,并拒绝在模型内部创建的关联/嵌套对象。但我要做的是:

1。)有一个搜索/选择框,我可以在其中键入患者姓名并自动完成

2.)如果找到患者,则选择患者并将其用于跑步。

3。)如果找不到患者或患者不对,我希望能够以某种方式使用first_or_create来创建与跑步相关的新患者记录。

我已经搜索了一些这方面的例子,除了旧的Railscast espisode之外没什么帮助并使用我想避免的jQuery自动完成(使用selectize或select2代替)。

我将继续研究我在网上找到的例子,但有关如何做到这一点的任何建议都是我正在寻找的。我觉得我可以从控制器内的集合中实例化患者,并使用selectize / select2框中的患者来选择患者和相关的patient_id嵌套字段。因此,选择患者不会有问题,但我不确定如何解决不匹配患者的问题。

1 个答案:

答案 0 :(得分:1)

这回答了我的问题:

https://gorails.com/episodes/select-or-create-with-selectize-js

我能够得到我需要的行为。