我正在尝试在我的 Rails 3.1 应用程序中使用 Datamapper,但在映射第二个存储库中存在的模型时遇到了问题。
我有以下课程
class Arp
include DataMapper::Resource
storage_names[:passive] = "arp"
property :id, Serial, :field => "id"
property :ip_address, String, :field => "ipaddr"
def self.default_repository_name
:passive
end
end
还有一些字段,但为了简单起见,我将它们注释掉并得到相同的错误。这是我运行 rake db:migrate 时得到的结果:
Arp 必须具有至少一个属性或多对一关系才有效
不知道发生了什么,因为我清楚地定义了一个属性。
这是mysql的表结构
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ipaddr | varchar(15) | NO | | NULL | |
+--------+-------------+------+-----+---------+----------------+
为了清楚起见,再次删除了一些字段。
我在 rails 的 database.yml 文件中有多个存储库,我根据 dm-rails github 页面上的指南设置它们。
这是该文件的缩短版本。
passive_defaults: &passive_defaults
adapter: mysql
username: <USERNAME GOES HERE>
password: <PASSWORD GOES HERE>
host: localhost
database: passive
development:
database: portal
<<: *portal_defaults
repositories:
passive:
<<: *passive_defaults
有人看到我在这里做错了吗?谢谢。