2013-04-22 288 views
0

我的應用程序中存在嵌套模型的問題。我無法獲得顯示的值。我知道我必須這樣做:@ modelname.attribute(view),但它似乎不工作。這就是爲什麼我開始在控制檯中查看,如果我在控制器中做的每件事都是正確的。 一切似乎都沒問題。但是我有一個問題,在控制檯中,當你這樣做(例如):Ruby on rails console

@modelname = Modelname.find(an id) 

它給你這樣相應的對象:

=>#< Modelname, id: x, other attributes > 

,當我試圖找到我我得到這個:

=>[#< Modelname, id: x, other attributes >] 

爲什麼?有什麼區別,這可能是我的問題?

+4

「找到我的其他物體」是什麼意思?通過ID查找返回單個對象。即使沒有關聯記錄或單個關聯記錄,has_many關聯也會返回一個數組。但我們看不到你在做什麼,你的模型是什麼樣的,等等。 – 2013-04-22 15:47:55

+0

所以我在我的數據庫和一張卡茲表中有一張病人表。 katz表具有patient_id。現在我想要的是將katz對象的所有值放入hiddenfields中。和用於我使用'<%= hidden_​​field_tag「卡茨[洗]」,@ katz.wash%>'的洗滌是卡茨對象的屬性,但我總是得到相同的錯誤:NoMethodError,未定義的方法洗滌。對於我的社團我有這樣的:'的has_many:katz'and'accepts_nested_attributes_for:katz'in patient.rb和katz.rb我:'belongs_to的:patient' – 2013-04-23 06:53:13

+0

編輯的問題,而不是臨時抱佛腳所有到評論的。包括確切的錯誤。 – 2013-04-23 09:49:58

回答

0

第二次-in你得到一個數組的控制檯 - 。這是不同的。至於爲什麼,我們不知道你寫的,找到的模式,但是你必須調用ModelName.where或一個FO ActiveRecord的查詢API中的其他方法返回一個數組(一個ActiveRecord ::關係要準確)

+0

所以我在我的數據庫中有一張病人表和一張卡茲表。 katz表具有patient_id。現在我想要的是將katz對象的所有值放入hiddenfields中。和用於我使用<%= hidden_​​field_tag「卡茨[洗]」,@ katz.wash%>的洗滌是卡茨對象的屬性,但我總是得到相同的錯誤:NoMethodError,未定義的方法洗滌。對於我的社團我有這樣的:的has_many:katzand accepts_nested_attributes_for:katzin patient.rb和katz.rb我:belongs_to的:病人 – 2013-04-23 07:21:38

+0

我建議你張貼這個新問題。無論如何,has_many中的符號必須是複數(katz(s)?)。這可能是你的問題的原因。 – boulder 2013-04-23 11:13:38