Как мне использовать AJAX, чтобы сделать мой логин и страницу регистрации одинаковыми в Rails 3? - PullRequest
0 голосов
/ 03 января 2011

Вот как выглядит код Rails:

<div id="sign_in">

<%= form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
        <%= f.text_field :f_name, :value => "First Name", :class => "clearField curved" %><br />
        <%= f.text_field :l_name, :value => "Last Name", :class => "clearField curved" %><br />
        <%= f.text_field :email, :value => "Email Address", :class => "clearField curved" %><br />
        <%= f.text_field :username, :value => "Username", :class => "clearField curved" %><br />
        <%= f.password_field :password, :value => "Password", :class => "clearField curved" %><br />
        <%= f.password_field :password_confirmation, :value => "Password", :class => "clearField curved" %><br />

    <div id="login_buttons">
        <%= f.submit "Sign in", :id => "login", :value => "Log In", :class => "curved" %>
        <%= f.submit "Sign in", :id => "register", :value => "Register", :class => "curved" %>

    </div>
<% end %>

Вот как выглядит реализация: http://jsfiddle.net/Chandu/AdQfB/11/

Я бы хотел, чтобы, когда они нажимали «Войти» или «Зарегистрироваться» в любом месте на сайте ... они выводили их на одну страницу с двумя состояниями.

Так, например, он может перейти на myapp.com/signin#login или myapp.com/signin#register или что-то в этом роде. Это не должно быть ТОЧНО, но вы поняли. Таким образом, я могу напрямую связаться с myapp.com/signin#register, и они сначала увидят форму регистрации, а не форму входа и наоборот.

Кроме того, когда они находятся на этой странице и нажимают «Войти» - если другие поля недоступны, они затем регистрируются. Однако, если они нажимают «Зарегистрироваться» и появляются другие поля, они заполняются информация и затем они успешно зарегистрированы, когда они нажимают «Отправить».

Как мне этого добиться?

Редактировать 1: У кого-нибудь есть решения?

Спасибо.

1 Ответ

1 голос
/ 04 января 2011

Я не уверен, есть ли в jQuery встроенная функция, но с простым JS (вы можете смешивать jQuery и JS):

window.location.hash

вернет все после хеша (#).

В вашем контроллере входа вы можете сделать что-то вроде:

$(function(){});
switch(window.location.hash){
  case 'login':
    show_login_form();
    break;
  case 'register':
    show_register_form();
    break;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...