Ruby Datamapper模型在sql查询中的表名中包含模块前缀模块名称

时间:2012-11-12 21:48:53

标签: ruby datamapper ruby-datamapper

我有一个datamapper模型:

module abc
    class Post
         include DataMapper::Resource
         property :title, String
         property :body,  Text
    end
end

注意,我的课程围绕模块abc

在其他档案

我有:

abc::Post.all

这应该调用查询:

select * from posts

但它叫

select * from abc_posts

表名称添加了abc_前缀。我该如何删除它。我没有保留模块周围的模型,然后它按预期工作。但我的代码库需要模型在模块内部。

2 个答案:

答案 0 :(得分:3)

我在http://rubydoc.info/github/datamapper/dm-core/master/DataMapper/NamingConventions/Resource/UnderscoredAndPluralizedWithoutModule

找到了解决方案
repository(:myreponame).adapter.resource_naming_convention = DataMapper::NamingConventions::Resource::UnderscoredAndPluralizedWithoutModule

更改:myreponame

同样在http://datamapper.rubyforge.org/dm-core/DataMapper/NamingConventions.html

答案 1 :(得分:0)

您还可以明确设置存储名称:

http://datamapper.org/docs/legacy.html