互いに関連する (多対多) 2 つのモデルがあり、Rails コントローラー アクションからの応答で両方を返したいと考えています。
2 つのクラスは User と Location です。リンク クラス UserLocation もあります。
User.rb は次のようになります。
class User
include DataMapper::Resource
...
has n, :user_locations
has n, :locations, :through => :user_locations
end
UserLocation.rb:
class UserLocation
include DataMapper::Resource
# attributes
property :id, Serial
# relationships
belongs_to :user
belongs_to :location
# validation
validates_presence_of :user, :location
end
Location.rb:
class Location
include DataMapper::Resource
# attributes
# no need to specify the user relation AFAIK
end
を実行するUser.get(id)
と、すべてのユーザー属性が返されますが、場所は返されません。コードをデバッグして a を実行するuser.locations
と、正しく動作します。レールアクションから場所が返されないのはなぜですか?