2013-12-17 33 views
0

我對rails非常陌生,在創建具有關聯的新對象時遇到問題。我有3個對象:用戶,工作,投標。投標屬於用戶,屬於工作。一份工作和一名用戶都有很多出價。我的問題是,當我嘗試在參數中使用出價散列創建新出價時,沒有出價屬性被更新。Ruby On Rails - 無法將屬性分配給具有關聯的新對象

class Bid < ActiveRecord::Base 

belongs_to :job 
belongs_to :user 

attr_accessor :pay_type, :rate, :comment 
attr_protected :user_id, :job_id 

end 
在出價控制器

創建動作,則params [:出價]產生這樣的: { 「pay_type」=> 「每小時」, 「速度」=> 「88」, 「註釋」=>「出價測試「}

但如果我嘗試

@bid = Bid.new(params[:bid]) 

@bid =

<Bid id: nil, pay_type: nil, rate: nil, comment: nil, user_id: nil, job_id: nil> 

我也試過

@job.bids.build(params[:bid]) 

但被分配的唯一投標屬性是JOB_ID:

<Bid id: nil, pay_type: nil, rate: nil, comment: nil, user_id: nil, job_id: 4> 

任何方向將不勝感激。讓我知道我是否應該提供更多信息。

回答

0

在這種情況下,我認爲你想用attr_accessible而不是attr_accessor,因爲你要做的是通過質量分配設置這些參數。

查看attr_accessible文檔瞭解這些工作原理的詳細信息。另外,請記住,您需要確保您的應用程序不受羣發攻擊漏洞的影響 - 請仔細閱讀文檔,您應該沒問題。

+0

謝謝,這有助於 –

相關問題