名称空间在Ruby中是如何工作的?
我使用名称空间来组织代码,但现在我有点怀疑。我有以下代码:名称空间在Ruby中是如何工作的?,ruby,module,architecture,namespaces,organization,Ruby,Module,Architecture,Namespaces,Organization,我使用名称空间来组织代码,但现在我有点怀疑。我有以下代码: module ShopApplication module Models class Product < ::Sequel::Model # Model code end end end 我想在不指定完整路径的情况下使用我的模型。我能否将@products=shopplication::Models::Product.all转换为@products=Product.all?如果是,如何进行?我
module ShopApplication
module Models
class Product < ::Sequel::Model
# Model code
end
end
end
我想在不指定完整路径的情况下使用我的模型。我能否将@products=shopplication::Models::Product.all
转换为@products=Product.all
?如果是,如何进行?我尝试将include::shopplication::Models
加入App
类,但没有成功 是您希望在此处使用的内容:
module ShopApplication
module Models
class Product < ::Sequel::Model
# Model code
end
end
end
module ShopApplication
module WebInterface
class App < ::Sinatra::Base
include ShopApplication::Models
get '/' do
@products = Product.all
end
end
end
end
是您要在此处使用的:
module ShopApplication
module Models
class Product < ::Sequel::Model
# Model code
end
end
end
module ShopApplication
module WebInterface
class App < ::Sinatra::Base
include ShopApplication::Models
get '/' do
@products = Product.all
end
end
end
end
module ShopApplication
module Models
class Product
def name
"Product-name"
end
def self.all
["array", "of", "products"]
end
end
end
end
module ShopApplication
module WebInterface
class App
include ShopApplication::Models
def instance_meth
p Product.new.name
end
def self.class_meth
p Product.all
end
end
end
end
ShopApplication::WebInterface::App.new.instance_meth
ShopApplication::WebInterface::App.class_meth