2016-12-05 70 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