eBilly
eBilly

Reputation: 147

How do I add additional fields to the Devise 'sign up' page?

I'm very new to Rails and devise so here goes...

I've installed devise and everything is working fine but I'd like to add a few more fields to my registration page. For instance, I have a usertype drop down that I'd like to add (populated by a Usertype Model - works fine in test) and would also like to collect different information depending on the type of user it is (CC information, etc.) Can someone point me to a resource or something. I tried overriding the Registration controller but that didn't link back to the devise views or fall in line with DRY principles to me (to copy the views). Thanks in advance for suggestions.

Upvotes: 14

Views: 5637

Answers (3)

Thiago Luiz Silva
Thiago Luiz Silva

Reputation: 99

It worked very fine, but I had to add the attr_acessors to my Users Model.

Just in the case of someone looking why it doesn´t persist the new collumn

Upvotes: 8

Sam 山
Sam 山

Reputation: 42863

Just add columns to the user and then add additional features in the views.

script/generate migration add_user_type_to_user

Then in your migration rake file:

add_column :users, :user_type, :string

and then rake db:migrate. Next you can add a drop down to your view and you can get those through rails generate devise:views:

<%= f.select :user, :user_type options_for_select(['admin', 'no status'])%>

Upvotes: 13

Julian Maicher
Julian Maicher

Reputation: 1793

rails generate devise:views will copy all views to your application. That's the intended way to customize devise templates (Source).

Upvotes: 5

Related Questions