Ruby on rails Rails中的活动记录和设置关系存在问题

Ruby on rails Rails中的活动记录和设置关系存在问题,ruby-on-rails,ruby,activerecord,entity-relationship,null,Ruby On Rails,Ruby,Activerecord,Entity Relationship,Null,我目前在rails中有一个控制器,我在其中创建一个模型对象并设置与该模型对象的关系。我希望将该关系作为响应,但如果在第一个请求中创建了模型对象,则该关系的值为零。在第一次请求之后,我将得到正确的关系作为响应。在创建对象模型之后,设置关系之后是否必须更新模型对象 我的代码: 控制器: def create @patient = Patient.find_or_create_by_prename_and_lastname_and_birthday(params[:patient])

我目前在rails中有一个控制器,我在其中创建一个模型对象并设置与该模型对象的关系。我希望将该关系作为响应,但如果在第一个请求中创建了模型对象,则该关系的值为零。在第一次请求之后,我将得到正确的关系作为响应。在创建对象模型之后,设置关系之后是否必须更新模型对象

我的代码:

控制器:

  def create
    @patient = Patient.find_or_create_by_prename_and_lastname_and_birthday(params[:patient])    
    @doctor = Doctor.find(current_user.id)
    @patient.create_qr_code_from_doctor_if_no_exists(@doctor)
    @qr_code = @patient.get_last_qr_code
    respond_to do |format|
      format.json {
        render :json => @qr_code.to_json
      }
    end
  end
型号:

  def create_qr_code_from_doctor_if_no_exists(doctor)
    if self.qr_codes.size == 0 
      QrCode.create!(:patient => self, :doctor => doctor)
    end
  end

  def get_last_qr_code
    if(self.qr_codes.size > 1) # sort only if there is more than one QR-Code
      self.qr_codes.sort do |x,y|
        y.created_at <=> x.created_at
      end
    end
    self.qr_codes.at(0)
  end
def从医生处创建二维码(如果医生不存在)
如果self.qr_code.size==0
QrCode.create!(:病人=>自己,:医生=>医生)
终止
终止
def get_last_qr_码
如果(self.qr_Code.size>1)#仅当存在多个二维码时进行排序
self.qr_码.排序do | x,y|
y、 在x处创建
终止
终止
自动二维码(0)
终止

自己解决,只是在建立关系后添加了
self.reload
。现在,它返回第一个请求中创建的关系