向具有不同 table 名称的用户模型添加设计
adding devise to User model with different table name
我正在使用一个预先存在的数据库,其中用户数据的 table 是 t_customer。为了遵守 rails 约定,我将相关模型命名为 "User"
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
self.table_name = "t_customer"
self.primary_key = "cust_id"
end
然后我 运行 rails 生成设计用户,然后是 rake db:migrate,但 rake 因错误而中止
UndefinedTable: ERROR: relation "users" does not exist
我该如何解决?这是错误的方法吗?在创建用户模型之后,但在创建设计迁移之前,我应该有 运行 rake db:migrate 或类似的东西吗?我不知道如何让 rails 知道 :users 指的是迁移文件中的 t_customer table:
class AddDeviseToUsers < ActiveRecord::Migration
def self.up
change_table(:users) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
只需更改table_name
class AddDeviseToUsers < ActiveRecord::Migration
def self.up
change_table(:t_customer) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
我正在使用一个预先存在的数据库,其中用户数据的 table 是 t_customer。为了遵守 rails 约定,我将相关模型命名为 "User"
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
self.table_name = "t_customer"
self.primary_key = "cust_id"
end
然后我 运行 rails 生成设计用户,然后是 rake db:migrate,但 rake 因错误而中止
UndefinedTable: ERROR: relation "users" does not exist
我该如何解决?这是错误的方法吗?在创建用户模型之后,但在创建设计迁移之前,我应该有 运行 rake db:migrate 或类似的东西吗?我不知道如何让 rails 知道 :users 指的是迁移文件中的 t_customer table:
class AddDeviseToUsers < ActiveRecord::Migration
def self.up
change_table(:users) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
只需更改table_name
class AddDeviseToUsers < ActiveRecord::Migration
def self.up
change_table(:t_customer) do |t|
## Database authenticatable
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""