Forum: Ruby on Rails custom table_name for table users with devise

4b991e6bc2c354df945713544f637f63?d=identicon&s=25 oto iashvili (Guest)
on 2013-03-07 15:07
(Received via mailing list)
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
Please log in before posting. Registration is free and takes only a minute.
Existing account

NEW: Do you have a Google/GoogleMail, Yahoo or Facebook account? No registration required!
Log in with Google account | Log in with Yahoo account | Log in with Facebook account
No account? Register here.