我正在尝试在用户和树列表之间创建关联。但是对于这个应用程序,客户关心树木是否与他们的院子或社区相关联。
例如 - 如果他们去在他们的“院子”中创建一棵松树榆树,并在“邻居”中创建松树和棕榈树。
我想要一个松树元素,但我想调用类似的东西 - user.yard_trees 和 tree.neighborhood_trees -
谢谢您的帮助。
我正在尝试在用户和树列表之间创建关联。但是对于这个应用程序,客户关心树木是否与他们的院子或社区相关联。
例如 - 如果他们去在他们的“院子”中创建一棵松树榆树,并在“邻居”中创建松树和棕榈树。
我想要一个松树元素,但我想调用类似的东西 - user.yard_trees 和 tree.neighborhood_trees -
谢谢您的帮助。
你可以做这样的事情
class User < ActiveRecord::Base
has_many :yard_trees, class_name: 'Tree', foreign_key: 'yard_id'
has_many :neighborhood_trees, class_name: 'Tree', foreign_key: 'neighborhood_id'
end
class Tree < ActiveRecord::Base
belongs_to :neighborhood, class_name: 'User'
belongs_to :yard, class_name: 'User'
end
如果您的表格设置正确,这应该可以按预期工作。但这对我来说似乎很奇怪。如果我是你,我实际上会创建 Yard 和 Neighborhood 模型并以这种方式进行设置:
class User < ActiveRecord::Base
has_one :yard
has_one :neighborhood
end
class Tree < ActiveRecord::Base
has_and_belongs_to_many :yards
has_and_belongs_to_many :neighborhoods
end
class Neighborhood < ActiveRecord::Base
has_and_belongs_to_many :trees
belongs_to :user
end
class Yard < ActiveRecord::Base
has_and_belongs_to_many :trees
belongs_to :user
end
编辑:
has_and_belongs_to_many
可能更适合。这样您就可以拥有一个松树对象并将其与许多院子和社区相关联。