我有两个相互关联的模型(多对多),我想在Rails控制器操作的响应中返回它们。
这两个类是用户和位置。还有一个链接类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
,它可以正常工作。为什么不从rails操作返回位置?
答案 0 :(得分:0)
它应该如何运作。关系加载了单独的SQL请求,它可能很慢而且很复杂,您应该准确指定要加载的关系。想象一下,在一次get
电话中加载所有关系 - 这会让我感到很乱。