Rails 3.1アプリケーションでDatamapperを使用しようとしていますが、2番目のリポジトリに存在するモデルのマッピングに問題があります。
私は次のクラスを持っています
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を有効にするには、少なくとも1つのプロパティ、または多対1の関係が必要です。
プロパティが明確に定義されているため、何が起こっているのかわかりません。
これがmysqlのテーブル構造です
+--------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| ipaddr | varchar(15) | NO | | NULL | |
+--------+-------------+------+-----+---------+----------------+
ここでも、わかりやすくするためにいくつかのフィールドを削除しました。
database.ymlファイルに複数のリポジトリがrailsにあり、dm-railsgithubページのガイドに基づいてそれらを設定しました。
これがそのファイルの短縮版です。
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
誰かが私がここで間違っていることを見ますか?ありがとう。