I dont use HABTM much myself, however I dont think this line will work: @user = @dealer.users.create(params[:user].merge(:role_id => 3)
Try something like this instead: @dealer = Dealer.create(params[:dealer]) @user = @dealer.users.new(params[:user]) @user.roles << Role.find(3) @user.save On May 18, 12:22 pm, brianp <brian.o.pea...@gmail.com> wrote: > Based of the declaritive_authorization railscast I've set up a roles > table containing 3 role types. A user table and a roles_users table. > No matter what I do the join table is always empty. > > DB: > create_table "roles", :force => true do |t| > t.string "role_type" > t.datetime "created_at" > t.datetime "updated_at" > end > > create_table "roles_users", :id => false, :force => true do |t| > t.integer "role_id" > t.integer "user_id" > end > > add_index "roles_users", ["role_id"], :name => > "index_roles_users_on_role_id" > add_index "roles_users", ["user_id"], :name => > "index_roles_users_on_user_id" > > create_table "users", :force => true do |t| > t.string "first_name", :null => false > t.string "middle_name" > t.string "last_name", :null => false > t.string "email", :null => false > t.string "dealer_id", :null => false > ............ > > role.rb model: > class Role < ActiveRecord::Base > has_and_belongs_to_many :users > > attr_protected :role_type > end > > user.rb model: > class User < ActiveRecord::Base > acts_as_authentic do |c| > c.logged_in_timeout = 10.minutes > c.login_field = :email > end > has_and_belongs_to_many :roles > belongs_to :dealer > > def role_symbols > roles.map do |file| > role.name_underscore.to_sym > end > end > > attr_accessible :email, :password, :password_confirmation, :first_name, > :middle_name, :last_name > > end > > The user is being created here: > �...@dealer = Dealer.new(params[:dealer]) > �...@dealer.save! > �...@user = �...@dealer.users.create(params[:user].merge(:role_id => 3) > �...@dealer.addresses.create(params[:mailing_address]) > > Every field is created without error except the join table is left > blank always. If i call: > @user.role.create it will successfully create a new role (with a blank > name which is bad) and a join table row. Other then that the join > table is always empty. > > Any suggestions. I've run out of things to try. > > cheers, > brianp > > -- > 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 > athttp://groups.google.com/group/rubyonrails-talk?hl=en. -- 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.