Hi, I'm experiencing problems with decl_auth when using a database with users table and columns names different from default. When I try to register an new user using the register form, I got the following error: * * * ActiveRecord::RecordNotFound in UsersController#create
Couldn't find Role without an ID RAILS_ROOT: /home/gustavo/CAS/cas-web Application Trace <http://localhost:3000/users#> | Framework Trace<http://localhost:3000/users#>| Full Trace <http://localhost:3000/users#> /home/gustavo/.rvm/gems/jruby-1.5.2/gems/activerecord-2.3.8/lib/active_record/base.rb:1597:in `find_from_ids' /home/gustavo/.rvm/gems/jruby-1.5.2/gems/activerecord-2.3.8/lib/active_record/base.rb:619:in `find' /home/gustavo/CAS/cas-web/app/controllers/users_controller.rb:41:in `create' My user.rb file: class User < ActiveRecord::Base #============================== # Petro DB Convention Mapping #============================== TABLE_NAME = 'USUARIO' set_table_name TABLE_NAME FIRST_NAME_COLUMN = 'USUA_NM_NOME' LAST_NAME_COLUMN = 'USUA_NM_SOBRENOME' USERNAME_COLUMN = 'USUA_NM_USUARIO' CRYPT_PASSWORD_COLUMN = 'USUA_VL_CRYPT_PASSWORD' PASSWORD_SALT_COLUMN = 'USUA_VL_PASSWORD_SALT' PERSISTENCE_TOKEN_COLUMN = 'USUA_VL_TOKEN' LAST_LOGIN_AT_COLUMN = 'USUA_DT_ULTIMO_LOGIN' LAST_LOGIN_IP_COLUMN = 'USUA_VL_IP_ULTIMO_LOGIN' EMAIL_COLUMN = 'USUA_VL_EMAIL' CURRENT_LOGIN_AT_COLUMN = 'USUA_DT_ATUAL_LOGIN' CURRENT_LOGIN_IP_COLUMN = 'USUA_VL_IP_ATUAL_LOGIN' DEPARTMENT_ID_COLUMN = 'USUA_CD_DPTO' CREATED_AT_COLUMN = 'EVT_DT_CRIACAO' UPDATED_AT_COLUMN = 'EVT_DT_ATUALIZACAO' alias_attribute :first_name, FIRST_NAME_COLUMN alias_attribute :last_name, LAST_NAME_COLUMN alias_attribute :username, USERNAME_COLUMN alias_attribute :crypted_password, CRYPT_PASSWORD_COLUMN alias_attribute :password_salt, PASSWORD_SALT_COLUMN alias_attribute :persistence_token, PERSISTENCE_TOKEN_COLUMN alias_attribute :last_login_at, LAST_LOGIN_AT_COLUMN alias_attribute :last_login_ip, LAST_LOGIN_IP_COLUMN alias_attribute :email, EMAIL_COLUMN alias_attribute :current_login_at, CURRENT_LOGIN_AT_COLUMN alias_attribute :current_login_ip, CURRENT_LOGIN_IP_COLUMN alias_attribute :department_id, DEPARTMENT_ID_COLUMN alias_attribute :created_at, CREATED_AT_COLUMN alias_attribute :updated_at, UPDATED_AT_COLUMN acts_as_authentic do |config| config.login_field USERNAME_COLUMN config.crypted_password_field CRYPT_PASSWORD_COLUMN end acts_as_tagger #============================== # Associations #============================== has_many :events has_many :assignments, :dependent => :destroy has_many :roles, :through => :assignments has_many :event_approval_requests belongs_to :department, :foreign_key => DEPARTMENT_ID_COLUMN #============================== # Validations #============================== accepts_nested_attributes_for :assignments validates_associated :roles, :assignments validates_presence_of :first_name, :last_name, :email, :username validates_presence_of :department_id, :unless => :admin? def admin? roles.first.title == Role::ADMIN_TITLE end def to_param "#{id}-#{username}" end def role_symbols roles.map do |role| role.title.underscore.to_sym end end end Register Form: <% simple_form_for @user do |f| %> <%= f.error_messages %> <%= f.input :username %> <%= f.input :first_name %> <%= f.input :last_name %> <%= f.input :email %> <%= f.association :roles, :as => :radio %> <%= f.association :department %> <%= f.button :submit %> <% end %> Migration snippet: change_table :users do |t| t.rename :first_name, User::FIRST_NAME_COLUMN t.rename :last_name, User::LAST_NAME_COLUMN t.rename :username, User::USERNAME_COLUMN t.rename :crypted_password, User::CRYPT_PASSWORD_COLUMN t.rename :password_salt, User::PASSWORD_SALT_COLUMN t.rename :persistence_token, User::PERSISTENCE_TOKEN_COLUMN t.rename :last_login_at, User::LAST_LOGIN_AT_COLUMN t.rename :last_login_ip, User::LAST_LOGIN_IP_COLUMN t.rename :email, User::EMAIL_COLUMN t.rename :current_login_at, User::CURRENT_LOGIN_AT_COLUMN t.rename :current_login_ip, User::CURRENT_LOGIN_IP_COLUMN t.rename :department_id, User::DEPARTMENT_ID_COLUMN t.rename :created_at, User::CREATED_AT_COLUMN t.rename :updated_at, User::UPDATED_AT_COLUMN end rename_table :users, User::TABLE_NAME Roles table: create_table :roles do |t| t.string :title t.timestamps end Assignment table: create_table :assignments do |t| t.integer :user_id t.integer :role_id t.timestamps end * Thanks in advance, Gustavo -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-t...@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.