在其create方法中访问模型的所有者

时间:2016-04-24 21:33:41

标签: ruby-on-rails

在我的应用程序中,我有一个note的模型,它是一个属于patient的文本块。我试图这样做,当您导航到patient的{​​{1}}时,您可以向该患者添加show,该note将显示在show上1}}。我可以轻松地在seeds.rb为患者生成笔记并将其显示在show上,但我的问题是创建新的notes

我知道答案的内容将出现在create的{​​{1}}方法中,尽管我不确定如何在创作时抓住notes_controller.rb。< / p>

它会像一样

patient_id

我的问题是我实际上没有def create @note = current_patient.notes.build(note_params) if @note.save #update current page? also wondering how to do this else flash[:alert] = "Failed" end end 方法而且我不确定如何制作一个方法。任何指导都会很棒。我将在下面发布一些可能相关的片段。

current_patient

patient.rb

class Patient < ActiveRecord::Base belongs_to :owner has_many :stays has_many :notes belongs_to :feed_list validates :name, presence: true, length: { maximum: 50 }, uniqueness: {case_sensitive: false} #...... end

note.rb

1 个答案:

答案 0 :(得分:1)

首先,您可以在路由声明中包含嵌套路由:

resources :patients do
  resources :notes
end

然后在notes_controller.rb中,您可以像这样查找您的患者ID:

def create
 @patient = Patient.find(params[:patient_id])
 @note = @patient.notes.build(note_params)
 if @note.save
  #update current page? also wondering how to do this
 else
  flash[:alert] = "Failed"
 end 
end