使用另一个表中的实时数据创建DropDown菜单

时间:2012-12-15 21:40:09

标签: ruby-on-rails ruby

我有一张病人桌和一张治疗台。很标准。在治疗表的内部我有一些字符串字段,它与任何东西都没有关系。我们现在就把它留在那里(认为它需要我假设)。患者表与用户有关系,但我不认为这是相关的。

我要做的是获得当前患者的下拉列表,以便在您创建治疗时显示在表单中。因此,治疗/ _form会显示当前患者的下拉列表。创建患者的方式非常简单,用户必须登录,然后他们使用CRUD方法创建患者(并且在该表中基本上只是名称:字符串和电话:字符串)。所以我只想让这些名字出现在治疗表格的下拉列表中。

据说,我意识到治疗区域需要与患者区域相关。所以我已经完成了这一切,所以让我们直接进入实施,到目前为止我已经完成了。

到目前为止,我所做的就是以硬编码的方式设置这一切。现在我需要帮助让它动态地工作。这是硬编码版本:

在治疗表格上:

<%= f.label "Client or Patient Name:" %>
<%= f.collection_select :patient, Treatment::PATIENTS, :to_s, :titleize %>

在治疗模式中:

PATIENTS = %w[John Jim Max Cathy]

  def role_symbols
    [patient.to_sym]
  end

当然,我将患者:字符串列添加到治疗台以使其发挥作用。但这很有效。现在我只想让PATIENTS数组拥有实时数据。我在模特中注意到你不能做像PATIENTS =%w [Patient.all]这样的事情,那么我究竟会怎样做呢?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

app/views/treatments/_form.html.erb

<%= f.collection_select(:patient_id, Patient.all, :id, :name) %>

应该给你一个所有患者的下拉列表

请参阅: