【发布时间】:2021-05-18 14:04:15
【问题描述】:
我有两个表用户和办公室
用户.rb
has_many :offices
office.rb
belongs_to :user
然后我有 officeuser 表,其中有 office_id 和 user_id 字段。
我正在尝试为类似这样的办公室创建销毁操作。
officer_controller.rb
def destroy
render json: {}, status: :unprocessable_entity unless office.destroy
end
private
def office
@office ||= Office.find(params[:id])
end
在销毁操作中,如果只有一个办公室与用户关联,我也想删除该用户。所以基本上删除用户,如果没有其他办公室那么属于用户,否则不要删除用户。
【问题讨论】:
-
听起来办公室和用户之间应该有一个 has_and_belongs_to_many 关联,特别是因为你提到了一个连接模型。如果它像您描述的那样是多对一的,那么您不需要连接模型。
-
@Joel_Blum 一个办公室只能属于一个用户。但一个用户可以有多个办公室
-
是的,这被称为多对一,您不需要为此连接表 (officeuser)。由于 office 只能属于一个用户,因此在 office 上有一个 user_id 就足够了。
标签: ruby-on-rails ruby-on-rails-5