2011-03-22 45 views
1

我有兩個模式「資產」,和「用戶」 .'Asset「可以被分配給一個‘用戶’和‘資產’被一個創建」多關係user'.here是模型類的細節與同一模型

class Asset < ActiveRecord::Base 
belongs_to :assigned_to ,:class_name=>'User' 
belongs_to :creator ,:class_name=>'User' 
end 

class User < ActiveRecord::Base 
has_many :assets 
end 
現在的資產

show.html.erb我可以

@asset.creator.name 

創造者的訪問名字,但我不能看不到

@asset.assigned_to.name #gives nothing 

兩個值成功保存在database.what是問題「assigned_to」的名字?

回答

0

最後我的問題在這裏解決的問題是解決

class Asset < ActiveRecord::Base 

belongs_to :creator ,:class_name=>'User' 
belongs_to :assigned_to, :class_name=>'User' 

end 

user.rb 

class User < ActiveRecord::Base 

has_many :created_assets, :foreign_key => 'creator_id', :class_name => 'Asset' 
has_many :assigned_assets , :foreign_key => 'assigned_to_id', :class_name => 'Asset' 

end 
0

嘗試直接打印的值控制檯:

puts @asset.pretty_inspect 
puts @asset.assigned_to.pretty_inspect 

的東西;不是吧:)

+0

未定義的方法'pretty_in spect'爲#<資產:0xb694e40c> – Naveed 2011-03-22 15:15:18

+0

我是新來的鐵軌我試圖在控制檯,我瘦了一切都在控制檯。控制檯結果是用戶= User.new =># \ n user.id = 2 user.name = '富' user.inspect =>「#<用戶ID:2,名稱: \ 「富\」>資產= Asset.new:名稱= '移動'=>#<資產ID:無,名稱: 「移動」> asset.creator =用戶=>#<用戶ID:2,名稱:\」 FOO \「>指晴朗asset.assigned_to =用戶=>同上確定現在asset.creator.name =>」富」 asset.assigned_to.name =>‘富’我認爲在控制檯我們明確分配關係的值,使作品在發展的ActiveRecord(是嗎?)做這個工作 – Naveed 2011-03-22 15:16:01

+0

第一 - 不分配.ID = 2自己,ActiveRecord的會爲你做它,當你保存。「user.save!」 二 - 。你必須做在軌分配應用程序中的方式與控制檯一樣的,但是,如果你已經產生,你會看到類似「User.update_attributes(PARAMS [:用戶])」的支架。這將包含所有的表單字段。你只需要確保你有form_field用於:assigned_to添加到你的表格 是這樣的: <(%)=選擇( 「資產」, 「assigned_to_id」,User.all.collect {| P | [p.name,p.id]},{:include_blank =>真})%> – adzdavies 2011-03-22 22:30:12

相關問題