0

私は次のようなデータマッパーモデルを持っています:

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_ます。どうすれば削除できますか。モジュールの周りにモデルを保持しないと、期待どおりに機能します。しかし、私のコードベースはモデルがモジュール内にある必要があります。

4

2 に答える 2

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にもあります

于 2012-11-13T00:47:28.603 に答える
0

ストレージ名を明示的に設定することもできます。

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

于 2012-11-20T23:24:37.483 に答える