对于我的应用程序,我有几个用户表(franceusers,belgiumusers,...),我想根据我尝试使用 table_name_prefix 和 table_name 的域使用一个或另一个,但它似乎不起作用
class User < ActiveRecord::Base
rolify
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable, #:confirmable,
:recoverable, :rememberable, :trackable, :validatable
def self.table_name
debugger
'franceusers'
end
def self.table_name_prefix
debugger
'france'
end
end
感谢调试器,我可以看到它被调用但不是 self.table_name_prefix。即使调用 self.table_name,也要在表用户而不是 franceusers 中设计搜索用户
在控制台 User.table_name => "franceusers"
User.table_name_prefix => "法国"
更奇怪的是,我也在使用activeadmin,当我浏览用户列表时,出现错误:Mysql2::Error: Unknown column 'franceusers.id' in 'order Clause': SELECT users.* FROM users ORDER BY franceusers.id desc限制 30 偏移量 0
似乎它可以找到字段的 table_prefix 但不能找到 FROM。
我做了什么坏事吗?还有其他方法可以更改用户表名吗?我不能将所有用户表合并为一个,因为这是我老板的指示:-s
谢谢