【发布时间】:2014-06-05 18:27:51
【问题描述】:
我需要在 BeautySalonEmployee 和 BeautySalonService 模型之间添加关系。有如下迁移:
class CreateBeautySalonEmployeesBeautySalonServices < ActiveRecord::Migration
def change
create_table :beauty_salon_employees_beauty_salon_services, id: false do |t|
t.belongs_to :beauty_salon_employee
t.belongs_to :beauty_salon_service
end
add_index :beauty_salon_employees_beauty_salon_services, [:beauty_salon_employee_id, :beauty_salon_service_id], unique: true, name: 'employee_service'
add_index :beauty_salon_employees_beauty_salon_services, :beauty_salon_employee_id, name: 'employee'
add_index :beauty_salon_employees_beauty_salon_services, :beauty_salon_service_id, name: 'service'
end
end
型号:
class BeautySalonEmployee < ActiveRecord::Base
has_and_belongs_to_many :beauty_salon_services
end
class BeautySalonService < ActiveRecord::Base
has_and_belongs_to_many :beauty_salon_employees
end
现在当我尝试执行以下命令时:
BeautySalonEmployee.first.beauty_salon_services.build
我收到以下错误:
ActiveRecord::StatementInvalid: Could not find table 'beauty_salon_employees_services'
我做错了什么?提前致谢。
【问题讨论】:
-
似乎 Rails 在帮助您方面有点过分热心。它将表名压缩为更合理的格式。将连接表更改为
beauty_salon_employees_services。 -
很好,但是你能给我举个例子,如何使用 create 建立一个新的关系!方法?
标签: ruby-on-rails