2016-12-05 37 views
0

我試圖手動添加數據到軌道使用軌道控制檯中的表,但我不斷收到undefined local variable or method錯誤。手動添加數據到軌道名稱空間模型

該模型ratings下命名空間:

型號/評級/ value_for_money_score.rb

class Ratings::ValueForMoneyScore < ApplicationRecord 
end 

要嘗試並手動添加一條記錄到數據庫中,我跑在控制檯以下內容:

$ RatingsValueForMoneyScore.create(score: '1', description:"Terrible, definitely not worth what was paid!") 

而且我得到這個錯誤:NameError: uninitialized constant RatingsValueForMoneyScore

我已經嘗試了幾個不同的版本,如 RatingsValueForMoneyScores.createRatings_ValueForMoneyScores.createratings_value_for_money_scores.create但繼續得到同樣的錯誤。我究竟做錯了什麼?

+1

你需要做'Ratings :: ValueForMoneyScore.create(得分:'1',描述:「可怕的,絕對不值得被支付的東西!」) – sa77

回答

0

的答案是輸入的組合,所以在一個答案中收集。

我的命名空間沒有正確設置(我使用的是「評分」而不是「評分」),所以我對此表進行了修正。我的模型然後看着如下:

型號/ rating.rb

class Rating < ApplicationRecord 
end 

型號/等級/ value_for_money_score.rb

class Rating::ValueForMoneyScore < ApplicationRecord 
end 

然後這個命令工作了創造記錄rating_value_for_money_score

$ Rating::ValueForMoneyScore.create(score: '1', description: "Test") 
0

嘗試

::ValueForMoneyScore.create(score: '1', description:"Terrible, definitely not worth what was paid!") 
0

的錯誤是在這種情況下具有足夠的描述,類RatingsValueForMoneyScore幾乎不存在。檢查你的命名空間,你有一個類名(這應該是單數)Rating,以及模塊ValueForMoneyScore。你會使用兩種

(重命名類Rating後)

Rating.create(...)

ValueForMoneyScores.create(...)

你的語法相當於:

class Rating 
    module ValueForMoneyScores < ApplicationRecord 
    ... 
    end 
end 
+0

謝謝。所以如果我遵循正確的話,我的模型現在是'models/rating/value_for_money_score.rb'(單數),並在'評級中。rb'模型我現在有以下幾點:'類評級 \t模塊ValueForMoneyScore Stephen

相關問題