通過外鍵鏈接導軌對象的最佳方式是什麼?這是我的例子。醫生有一張計時卡(每天收集工作時間)。我希望把醫生的id的任命表明這一點:通過外鍵鏈接導軌對象
從routes.rb中
resources :locations do
resources :practitioners, only: [:new, :create]
end
resources :practitioners, except: [:new, :create] do
resources :timecards, except: :delete
resources :appointments
end
timecard.rb - 你可以在這裏看到我強迫timecard.practitioner_id爲3,但是這是強力測試努力。
class Timecard < ActiveRecord::Base
belongs_to :practitioner
attr_protected :id
before_save :set_practitioner_id
def set_practitioner_id
if self.practitioner_id.blank?
self.practitioner_id = 3
end
end
end
而且從我的控制器......
def create
@practitioner = Practitioner.find(params[:practitioner_id])
@timecard = Timecard.create(params[:timecard])
respond_to do |format|
if @timecard.save
format.html { redirect_to @practitioner, notice: 'Timecard was successfully created.' }
format.json { render json: @timecard, status: :created, location: @timecard }
else
format.html { render action: "new" }
format.json { render json: @timecard.errors, status: :unprocessable_entity }
end
end
end
我可以看到該參數的practitioner_id = 3(這是我想用什麼),我只是不知道如何訪問它在代碼中。
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"DIp4R31McXnBNP4NB06KDTzV+8lLcWvxbq1w9J+Z1+M=",
"timecard"=>{
"hours_worked"=>"2",
"activity_date(1i)"=>"2013",
"activity_date(2i)"=>"3",
"activity_date(3i)"=>"20",
"practitioner_id"=>"",
"location_id"=>"1"
},
"commit"=>"Create Timecard",
"practitioner_id"=>"3" <== this is what I want to use
}
從業者有一張計時卡(收集每天工作的小時數) – Zippie 2013-03-28 01:04:50
,這是不是很清楚,它是'has_one'或'has_many'關聯,但邏輯答案是'has_many',醫生有很多時間卡這是根據日期創建的。 – jvnill 2013-03-28 01:07:50
has_many - 我嘗試了兩個答案,沒有得到它......所以我必須錯過別的東西。 – 2013-03-28 02:25:03