【发布时间】:2013-03-07 14:40:33
【问题描述】:
对于我的应用程序,我有几个用户表(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 => "法国人"
User.table_name_prefix => "法国"
更奇怪的是,我也在使用activeadmin,当我浏览用户列表时,我有一个错误: Mysql2::Error: Unknown column 'franceusers.id' in 'order Clause': SELECT users.* FROM users ORDER BY franceusers.id desc LIMIT 30 OFFSET 0
它似乎可以找到字段的table_prefix,但不能找到FROM。
我做了什么坏事吗?还有其他方法可以更改用户表名吗? 我不能将所有用户表合并为一个,因为这是我老板的指示:-s
谢谢
【问题讨论】:
标签: ruby-on-rails devise