这不是'如何在Rails中明确指定模型的表名映射?',因为我正在寻找一种不明确设置的方法表名。相反,我想根据模型的继承自动设置表名。
我有以下模型结构:
models
First (inheritance)
Second (inheritance)
Third (model)
User (model)
Second (model)
我在数据库中有以下表格:
first_second_thirds
users
user_seconds
当我执行以下代码时:
First::Second::Third.create(id: 1)
User.create(id: 1)
User::Second.create(id: 1)
我收到了这个错误:
ActiveRecord :: StatementInvalid:找不到表'三分之一'
如何告诉模型相应的数据库表?
编辑:添加代码示例
分贝/迁移/ 20170305200503_create_first_second_third.rb
class CreateFirstSecondThirds < ActiveRecord::Migration[5.0]
def change
create_table :first_second_thirds do |t|
t.timestamps
end
end
end
分贝/迁移/ 20161114164114_devise_create_users.rb
class DeviseCreateUsers < ActiveRecord::Migration[5.0]
def change
create_table :users do |t|
t.timestamps
end
end
end
分贝/迁移/ 20170305145804_create_user_stories.rb
class CreateUserSeconds < ActiveRecord::Migration[5.0]
def change
create_table :user_seconds do |t|
t.timestamps
end
end
end
应用程序/模型/第一/第二/ third.rb
class User < ApplicationRecord
end
应用程序/模型/ user.rb
class User < ApplicationRecord
end
应用程序/模型/用户/ second.rb
class User < ApplicationRecord
end