通过rails 4中的控制器关联current_user

时间:2015-12-02 22:52:49

标签: ruby-on-rails ruby devise controller associations

我正在尝试通过控制器将current_user.id@patient.medic_id相关联。

我在我的控制器中试试这个:

def create
    #  @patient = Patient.new(patient_params)
    @patient = current_user.patients.build(patient_params[:medic_id => current_user.id])

    respond_to do |format|
      if @patient.save
        format.html { redirect_to @patient, notice: 'Patient was successfully created.' }
        format.json { render :show, status: :created, location: @patient }
      else
        format.html { render :new }
        format.json { render json: @patient.errors, status: :unprocessable_entity }
      end
    end
  end

这会自动使用medic_id在视图中填充current_user.id,但是当我提交表单时,活动记录不会保存患者的其他参数,例如name,{{1 }},last_nameage

这是我的模型/ blood_type(设计 - 用户)

medic.rb

这是我的模型/ class Medic < ActiveRecord::Base has_many :patients end

patient.rb

我需要一种方法从class Patient < ActiveRecord::Base belongs_to :medic end medic-user视图调用所有寄存器(患者);这是最好的方法吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

要在创建患者时解决问题:

medic_id = {medic_id: current_user.id}
current_user.patients.build(patient_params.merge(medic_id))

假设您的@medic行动中有show,请让所有患者medic-user

@patients = @medic.patients

show视图中,您可以作为数组访问@patients