Визуализируйте модальный диалог с AJAX, если пользователь не вошел в систему и пытается проголосовать - PullRequest
0 голосов
/ 25 марта 2011

Когда пользователь не вошел в систему и пытается проголосовать, я хочу предложить пользователю войти в систему.

Вы можете проверить этот предыдущий вопрос, который я задал, чтобы понять, на что похож мой код: Перенаправление не работает

Как бы я вместо перенаправления пользователя на страницу входа отображал с помощью AJAX div или модальный диалог, в котором есть форма для входа илихотя бы ссылка в нем, чтобы перевести пользователя на страницу входа ...

Конечно, этот div должен отображаться только тогда, когда пользователь не вошел в систему и пытается проголосовать ....

Ответы [ 2 ]

1 голос
/ 25 марта 2011

Я реализовал это, используя facebox_render (https://github.com/ihower/facebox_render)

Установите и настройте facebox_render и продолжайте ..

В контроллере приложения было before_filter

def authorized?
  if not user_signed_in?
    respond_to do |format|
      format.html do
        flash[:error] = "Sorry!!! You are not authorized to access that page!!!"
        redirect_to root_path
      end

      format.js do
        render_to_facebox(:template => dashboards_authorization_failed_path)
      end
    end
  end
end

dashboards_authorization_failed_path направляет на {:controller => 'dashboards', :action => 'authorization_failed'}

Наконец в authorization_failed.js.erb

<div class='flash-error facebox_err'>
  Sorry!!! You are not authorized to access that page!!!
</div>

Отображается сообщение «Извините !!! Вы не авторизованы для доступа к этой странице !!! "в facebox

Вы можете иметь форму или ссылку на страницу входа в facebox, просто введите свой код в js.erb

0 голосов
/ 25 марта 2011

Что бы я ни делал в вашем случае, на моей странице, у меня обычно будет "Логин" или "Добро пожаловать, пользователь!" вверху, в зависимости от того, вошли вы в систему или нет.

Затем с помощью javascript я могу проверить, отсутствовал ли текст "Логин" или div при попытке проголосовать. Если бы это было там, я бы назвал модальный плагин всплывающих окон или еще много чего у вас.

В общем, для этого вам просто нужно хорошее решение js, которое довольно просто.

  1. пользователь нажимает на голосование
  2. ощущение, что пользователь нажал на голосование (в jquery это делается с помощью .click ())
  3. Ищите на странице знак того, что пользователь не авторизован
  4. если пользователь не вошел в систему, всплывающее окно mr. Lightbox
  5. ???
  6. PROFIT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...