0
2つのモデルが互いに関連していて、それらを両方ともRailsコントローラのアクションから返す必要があります。RailsコントローラからDatamapperを使用してオブジェクトを返す
2つのクラスは、ユーザーと場所です。リンククラス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)
を行うと、それはすべてのユーザー属性を返します。場所は含まれていません。コードをデバッグしてuser.locations
を実行すると正しく動作します。なぜレールアクションから返される場所はありませんか?
したがって、ロードする関係をどのように指定するのですか? – Ger
あなたは '#get'で関係をロードしません。あなたは 'user.locations'を呼び出し、その結果を使用します。 – ujifgc