custom table_name for table users with devise

21 views
Skip to first unread message

oto iashvili

unread,
Mar 7, 2013, 9:06:17 AM3/7/13
to rubyonra...@googlegroups.com
Hi
for my app, I have several tables for users (franceusers, belgiumusers, ...) and I would like to use one or another depending on domain
I tried with table_name_prefix and table_name but it seems to not work 

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

thanks to debugger, I can see that is called but not self.table_name_prefix. And even if self.table_name if called, devise search users in tables users instead of franceusers

in console
User.table_name => "franceusers"  
User.table_name_prefix => "france"

more weird, im also using activeadmin, and when I browse users list, I have an error : 
Mysql2::Error: Unknown column 'franceusers.id' in 'order clause': SELECT  `users`.* FROM `users`  ORDER BY `franceusers`.`id` desc LIMIT 30 OFFSET 0

it seems it can find table_prefix for field but not for FROM.

do I do anything bad ? is there another way to change users table name ?

thanks

merci
Reply all
Reply to author
Forward
0 new messages