Ruby on rails 简单表单rails 4,设置自动关联

Ruby on rails 简单表单rails 4,设置自动关联,ruby-on-rails,ruby-on-rails-4,associations,simple-form,Ruby On Rails,Ruby On Rails 4,Associations,Simple Form,这是一个小项目,我尝试将患者模型与咨询联系起来。一名患者进行了多次咨询,以我的形式,我有: <%= f.association :patient %> 我通过以下方式将id参数从患者传递到动作“新建”: <%= link_to new_consultum_path(:id => @patient.id) %> @patient.id)%%> 我认为: 如何使f.association字段自动获取相应的患者id 如何确保患者id是当前患者 如果我想隐藏这个

这是一个小项目,我尝试将患者模型与咨询联系起来。一名患者进行了多次咨询,以我的形式,我有:

<%= f.association :patient %>

我通过以下方式将id参数从患者传递到动作“新建”:

<%= link_to new_consultum_path(:id => @patient.id) %>
@patient.id)%%>
我认为:

  • 如何使f.association字段自动获取相应的患者id

  • 如何确保患者id是当前患者

  • 如果我想隐藏这个字段,如果我把

    而不是
  • 这样做有更好的方法吗

  • 为什么视图中显示的是患者:0x007f4e7c32cbd0


  • 感谢您的帮助。

    您希望使用字段\u for将咨询与患者关联,该字段类似于表单\u for,但不构建表单标签

    如果从患者对象开始,您可以遍历将其绑定到表单字段的咨询关联

    它看起来像这样

    <%= form_for @patient do |patient_form| %>
        <% patient_form.text_field :any_attribute_on_patient %>
        <% @patient.consultations.each do |consultation| %>
            <%= patient_form.fields_for consultation do |consultation_fields| %>
                <% consultation_fields.text_field :any_attribute_on_consulatation %>
            <% end %>         
        <% end %>
    <% end %>
    
    
    
    抱歉,代码可能不完全正确

    查看文档中的字段_

    您还必须对患者进行咨询。当您为设置accepts_nested_forms_时,Rails将自动向患者更新关联的咨询对象,并保存您所做的任何编辑。对于这种类型的大多数嵌套表单处理,您肯定希望使用accepts\u nested\u attributes\u

    为什么在视图中显示我患者:0x007f4e7c32cbd0

    这是一个
    患者
    对象

    这意味着您需要调用此对象的属性-例如
    @patient.name

    --

    f.关联字段
    自动获取对应的
    患者id

    可能有助于:

    组织模型似乎没有以下任何字段:[
    :to_label
    :name
    :title
    :to_s
    ],因此
    SimpleForm
    无法检测默认值 集合的标签和值方法。我想你应该通过考试 手动


    如果需要,我可以提供更多的上下文。

    当我今天在不太累的时候重读你的问题时:O-我意识到我实际上没有回答你的问题。不过,我将把这个回答留待以后,希望其他人会觉得有用。谢谢你抽出时间来解释我。我意识到我必须为开发这个应用程序进行更多的研究和学习,因为现在我认为我使用scaffold构建这个应用程序是错误的,我不知道哪本书可以帮助我深入理解我如何管理我应用程序中的孤立用户(实例)和控制器中的关系,你知道有哪本书可以帮助我吗?不管怎样,谢谢你的帮助
    #app/models/patient.rb
    class Patient < ActiveRecord::Base
       def to_label 
          "#{name}"
       end
    end
    
    #app/controllers/consultations_controller.rb
    class ConultationsController < ApplicationController
       def create
          @consultation = Constultation.new
          @consultation.patient = current_patient
          @consultation.save
       end
    end