加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 20:49:02 所属栏目:百科 来源:网络整理
导读:以下是我的两个模型类 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_attribute
以下是我的两个模型类
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,:active 
end

在我的患者表格中,我希望有一个多选框,可以将患者分配给客户.有没有办法可以做到这一点,所以我没有任何逻辑
控制器除外

@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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读