Rails模型命名空间:找不到表

时间:2017-03-05 21:20:48

标签: ruby-on-rails ruby database model namespaces

这不是'如何在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

0 个答案:

没有答案