ruby-on-rails - 接受 has_many 关系的嵌套属性

标签 ruby-on-rails

下面是我的两个模型类

class Patient < ActiveRecord::Base
  belongs_to :user, :dependent => :destroy
  has_many :enrollments, :dependent => :destroy
  has_many :clients, :through => :enrollments

  accepts_nested_attributes_for :user
  accepts_nested_attributes_for :enrollments
  attr_accessible :user_attributes,:enrollments_attributes, :insurance
end

class Enrollment < ActiveRecord::Base
  belongs_to :client
  belongs_to :patient
  attr_accessible :client_id, :patient_id, :patient_id, :active 
end

在我的患者表格中,我想要一个多选框,可以将患者分配给客户。有没有办法做到这一点,所以我不必在
Controller 除了
@patient = Patient.new(params)
@patient.save

我试过这个:
<%= patient_form.fields_for :enrollments do |enrollments_fields| %>
<tr>
    <td class="label">
        <%= enrollments_fields.label :client_id %>:                     
    </td>
    <td class="input">
        <%= enrollments_fields.collection_select(:client_id, @clients, :id, :name, {}, :multiple => true) %>
    </td>                   
</tr>
<% end %>

但它只保存了第一个客户端。如果我删除多个部分,它可以运行,但我只能选择 1 个客户端!

select的html值为:

最佳答案

我最终做了以下事情:

<%= check_box_tag "patient[client_ids][]", client.id, @patient.clients.include?(client) %>

我不确定这是否是最好的方法......任何评论(我必须更新我的模型以包含 attr_accessible :client_ids

关于ruby-on-rails - 接受 has_many 关系的嵌套属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5197761/

相关文章:

mysql - Rails 选择随机记录

ruby-on-rails - 回形针附件的后台处理

ruby-on-rails - 在 Snow Leopard 上安装 Ruby 和 Rails 的最佳实践?

ruby-on-rails - Rails 4 - 将选项显示为单选按钮

ruby-on-rails - 为什么 Rails 中会返回 "user.role.save"NoMethodError?

ruby-on-rails - 一次渲染 n 个对象,插入代码然后重复接下来的 n 个对象 - Rails

ruby-on-rails - 事件管理员 :select drop-down defaults to current value in development but defaults to blank in production

ruby-on-rails - 在简单的表单输入中调用 JS (Rails)

ruby-on-rails - 新的 Ubuntu 安装,尝试为另一个项目安装 Ruby 2.3.1 和 2.5.0

ruby-on-rails - Rails 中的 AJAX - 执行简单循环以在可用时更新信息