一般来说,Ruby,Rails和OOP的新手。我已经通过" Ruby on Rails教程:使用Rails学习Web开发"大约80%通过"敏捷Web开发与Rails 4"但我无法直观地想出这一点。我希望有人可以帮助我理解,也许我说错了。
模型:用户,团队,成员,订单,OrderLine
这是一个非常基本的设置。 (简而言之,如果你愿意...) 团队belongs_to:用户(所有者,这里不是非常相关) 用户has_many:团队通过::会员资格 团队has_many:用户通过::会员资格 OrderLine belongs_to:团队 请注意,OrderLine已分配给团队,而不是整个订单。
我试图显示与当前登录用户(current_user)相关联的所有OrderLines。虽然这实际上并不奏效,但我觉得它接近生产。它也感觉非常脏。
def index
@memberships = current_user.memberships.ids
membership_list = @memberships.join(", ")
@OrderLines = OrderLine.where("team_id IN (?)", membership_list)
end
干杯!
答案 0 :(得分:0)
# Model
class User < ActiveRecord::Base
has_many :owned_team, :class_name => "Team"
has_many :teams
has_many :memberships
has_many :order_lines, through: :memberships
class Team < ActiveRecord::Base
belongs_to :faction
belongs_to :region
belongs_to :owner, :class_name => "User"
has_many :users, through: :memberships
has_many :order_lines
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :team
has_many :order_lines, through: :team
# Controller
@OrderLines = current_user.order_lines
有时你需要的只是休息。