私のアプリには、ユーザー (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 ではなくテーブル users でユーザーを検索するように工夫してください
コンソールで 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 を見つけることはできないようです。
私は何か悪いことをしますか?ユーザーのテーブル名を変更する別の方法はありますか? 上司の指示であるため、すべてのユーザーテーブルを1つに結合することはできません:-s
ありがとう