Ruby(/ rails?)顶级命名空间

时间:2013-10-16 16:17:00

标签: ruby-on-rails ruby namespaces global-namespace

我遇到以下情况:

我正在使用rails构建一个站点。我有两个名为User的类。一个是ActiveRecord,另一个是我想用来播种我的数据库的自定义类。问题:

我可以在名为User的自定义类中引用名为User的ActiveRecord类吗?

2 个答案:

答案 0 :(得分:7)

两个具有相同名称的类将导致奇怪的行为,实际上只有一个类将包含来自两个文件的方法,这可能会导致大量问题。

您应该在模块中命名您的播种器类,例如:

module Seeder
  class User
  end
end

然后在需要使用此类时使用Seeder::User

答案 1 :(得分:0)

您正在使用名为User.rb的文件为数据库播种并且您正在使用Rails?为什么不使用db/seeds.rb

然后您可以使用rake db:seed

为您的数据库设定种子

seeds.rb内你可以这样做:

(1..10).each do |i|
  User.create(name: "name_#{i}")
end