I''m trying to create an Login Form, that is retrieved via Ajax and
creates a Session via Ajax.
In my Login Form I typed
<%= form_tag sessions_path, :remote => true do %>
Session Controller
def new
respond_to do |format|
format.js
end
end
And in my session vier directory I created a js.erb
$(".login").update("<%=
escape_javascript(render(''sessions/new'')) %>");
the login class spans the whole content of my login form, but trying to
open the login form only throws me a completely blank page :/
Is my jquery function not allright, or am I missing out on something?
I appreciate any kind of help!
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.
The default method for a form_tag is a POST. But in your controller you are only showing a the #new method (GET). Should it not be #create? Op maandag 18 februari 2013 22:15:28 UTC+1 schreef Ruby-Forum.com User het volgende:> > I''m trying to create an Login Form, that is retrieved via Ajax and > creates a Session via Ajax. > > In my Login Form I typed > <%= form_tag sessions_path, :remote => true do %> > > Session Controller > def new > respond_to do |format| > format.js > end > end > > And in my session vier directory I created a js.erb > $(".login").update("<%= escape_javascript(render(''sessions/new'')) %>"); > > the login class spans the whole content of my login form, but trying to > open the login form only throws me a completely blank page :/ > > Is my jquery function not allright, or am I missing out on something? > I appreciate any kind of help! > > -- > Posted via http://www.ruby-forum.com/. >-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/HMJbAq-t4OQJ. For more options, visit https://groups.google.com/groups/opt_out.
you are right, but I''m not only trying to execute the login post via ajax, but also retrieve the login form via ajax first. Once I accomplish this, I can go to the next step. Right now I want to open the login form in a small popup box, that is retrieved by ajax :/ What is missing in my Source Code? -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit https://groups.google.com/groups/opt_out.
I just ran into this last week, and solved it as follows:
1) Render the login form in a hidden div when the containing page is
rendered
2) Unhide the login div when the user clicks the login link (hook this
event after the main page is loaded -- I used jquery''s delegate method
as
follows:
$(''#headerwrapper'').delegate(''a'',
''click'', function(event) {
var id=$(event.target).attr("id")
if (id == ''login'') {
event.preventDefault();
$(''.login_wrapper'').removeClass(''hidden'');
}
});
3) The login div should be rendered using a rails form or form tag helper
with remote: true
This avoids an extra trip to the controller just to GET html for a form.
Since my login form has no dynamic data on it that is not available when
the containing page is loaded, this works.
Note: if you are using Devise then you''re going to have to revise most
of
the controller methods to operate via Ajax/UJS. This is not as hard as it
sounds, but reply if you need help.
On Monday, February 18, 2013 4:15:28 PM UTC-5, Ruby-Forum.com User
wrote:>
> I''m trying to create an Login Form, that is retrieved via Ajax and
> creates a Session via Ajax.
>
> In my Login Form I typed
> <%= form_tag sessions_path, :remote => true do %>
>
> Session Controller
> def new
> respond_to do |format|
> format.js
> end
> end
>
> And in my session vier directory I created a js.erb
> $(".login").update("<%=
escape_javascript(render(''sessions/new'')) %>");
>
> the login class spans the whole content of my login form, but trying to
> open the login form only throws me a completely blank page :/
>
> Is my jquery function not allright, or am I missing out on something?
> I appreciate any kind of help!
>
> --
> Posted via http://www.ruby-forum.com/.
>
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit
https://groups.google.com/d/msg/rubyonrails-talk/-/mmYAjbfRAv4J.
For more options, visit https://groups.google.com/groups/opt_out.
Thanks for your help!
But unfortunately I can''t quite follow you.
1. You mean I should be redirected to my login page, with the
login-content being invisivle?
Actually I want some kind of Login Box, that pops up anywhere, since
several features in my application are filtered by a "require login"
helper-method.
I bothered to find a way redirecting to the current page after a login,
and using ajax I wouldn''t have to deal with that. So I need a Solution
that replaces any "redirec to login_form"-method with an event, that
pops up a login-box!
So far my Login (creating the Session) is working fine. My Login Form
looks like this
<%= form_tag sessions_path, :remote => true do %>
I also have put this login form in a partial, that is rendered by
jQuery, whenever I click on "login" which doesn''t have a
path-helper but
only a class.
So what I''m missing out is, that this only works, when I click on
"login", but once a login is required due to a
"require_login" method, I
get redirected to my Loginform Page.
This is my Helper Method
def require_login
unless user_signed_in?
redirect_to login_path,
alert: "You need to login first"
end
end
How do I change that so I don''t get routed to some other page, but a
hidden div gets revealed?
render :partial => "sessions/login" only renders a compoletely
white
page with no styles.
This is my jQuery function
$(document).ready ->
$(".button_login").click ->
$(".login").show()
It only responds to this very login button, but not the redirecting
method...
I hope you can follow me and help me out...thanks in advance!!
--
Posted via http://www.ruby-forum.com/.
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit https://groups.google.com/groups/opt_out.