Devise - Sign up and sign in at same view

Hi, I’d like to know what is the best way to do this. Right now I can
see
two options:

  1. create a new views at make a custom controller for registration
    controller to redirect to the right path
  2. change the registration views that devise generates for you (so, for
    example, the new view will have the session view inside it for the sign
    in
    too)

Thanks in advance.

I just did this. I let Devise generate the views (rake task, check the
wiki) and then I modified the devise/sessions/new layout to combine sign
in and sign up.

<%- title “Sign in or sign up” %>

Already registered?

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>

<%= f.label :email %>
<%= f.email_field :email %>

<%= f.label :password %>
<%= f.password_field :password %>

<% if devise_mapping.rememberable? -%>

<%= f.check_box :remember_me %> <%= f.label :remember_me %>


<% end -%>

<%= f.submit "Sign in" %>

<% end %>

Create an account

<%= render :partial => 'devise/registrations/form' %>
<%= render :partial => "devise/shared/links" %>

Walter

Do you think it is better than create a new view for it?

I also want to render a different page if the user is loged in.

How should I do that?

Oh, and all that with the root url

root :to => ‘users/sessions/new’

It didn’t work, when I do

devise_for :users do
root :to => “devise/sessions#new”
end

because I want to log in in the root url and then remain there, but with
a
different rendering (logic is inside the new view of users/sessions)

It keeps trying to redirect to the root url again and again, giving a
message “Too many redirects occur…”

What should I do?

Thanks in advance

On Jan 26, 2012, at 11:26 AM, Rodrigo R. wrote:

Do you think it is better than create a new view for it?

I don’t know about better, it was expedient and didn’t create a third
view file.

Walter

On Jan 27, 2012, at 9:45 AM, Rodrigo R. wrote:

What should I do?
I think you need to re-think how this login will work. If you’re trying
to log in on a page, and then show that same page again after the user
has logged in, what will trigger to the authentication system that the
login is necessary?

Devise is abstracted around solving this particular problem: User
arrives at a page that she needs to be authenticated in order to see.
She is redirected to a login page, authenticates, and then is redirected
back to the originally requested page. If you’re not trying to do that,
then you have to add on to that behavior, not replace it, or you won’t
have much benefit to using this framework.

Try this. Follow the examples (RailsCast has a very nice treatment of
Devise, goes into all the nooks and crannies in two parts) and build the
normal authentication system. Be sure to set a root page that is not the
login path. Then add a login form to your root page (and optionally
hide it if the user is logged in) using render partial in your view.
This will be used to authenticate people who want to sign in before
they are required to sign in.

Walter

The problem is that I want to redirect to the same url (meaning, I don’t
want to redirect, just want to go to the same route, and it will render
a
different view because I did this in the view with an “if
user_sign_in?”)

Hello Rodrigo,

if you need to redirect the user after login, there is a method in
devise
that make it. You should take a look in the documentation first, but the
method is after_sign_in_path_for()

cheers

2012/1/27 Walter Lee D. [email protected]

a different rendering (logic is inside the new view of users/sessions)

login path. Then add a login form to your root page (and optionally hide

On Thu, Jan 26, 2012 at 1:09 PM, Walter Lee D. [email protected]
session_path(resource_name)) do |f| %>

<%= f.submit "Sign in" %>

Thanks in advance.

You received this message because you are subscribed to the Google G.
“Ruby on Rails: Talk” group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.


thiagocifani

twitter.com/thiagocifani
del.icio.us/thiagocifani
http://del.icio.us/thiagocifani