I have a simple app with an authentication system from devise. I tried adding roles to the user model. But nothing happens.
what i did was created the Role model
First of all, instead of using an association, you can use enum
in your user class:
class User < ActiveRecord:Base
enum role: {seller: 0, buyer: 1, admin: 2}
...
end
You'll need a migration to add a role
(integer) column into your user's table.
In your terminal:
rails g migration add_role_to_users
Then edit the migration file:
class AddRoleToUsers < ActiveRecord::Migration
def change
add_column :users, :role, :integer
end
end
Then you can e.g. use the SimpleForm gem to let the user choose his/her role during sign up:
<%= simple_for for @user do |f| %>
...
<%= f.select :role, collection: User.roles.keys.to_a %>
...
<% end %>
But SimpleForm is also good with associations:
<%= f.association :role, as: :radio_buttons %>
There are more examples for associations here.