Использование Devise и textarea, размещение после входа в систему - PullRequest
1 голос
/ 05 июля 2011

Я использую Devise для аутентификации на моем сайте.Я хочу, чтобы пользователь мог публиковать сообщения в текстовой области, если он / она вошел в систему, если нет, он введет то, что он хочет опубликовать в текстовой области, и когда он нажмет на сообщение, появится диалоговое окно входа, где пользовательвойдите / зарегистрируйтесь, а затем он автоматически разместит свой комментарий в текстовой области на веб-сайте.

Я не уверен, что использую правильную логику, но у меня есть кнопка для отправки сообщениякомментарий, если пользователь вошел в систему, в противном случае ничего не делать, и javascript открывает диалог входа в систему.Вход в систему / подписка работает, но я выясняю, как автоматически отправить сообщение после этого.

Это мой код для кнопки:

 <% if user_signed_in? %>
    <%= f.submit :value => t(:submit_comment_text), :class => "submit-button" %>
 <% else %>
    <input class="submit-button" id="comment_submit_nlogged"  value="Post!"/>
 <% end %>

Первая часть работает нормально, ново второй части открывается диалоговое окно, и пользователь входит в систему, но он обновляет страницу, и я теряю то, что пользователь ввел в текстовую область.Я пытался получить содержимое текстовой области через переменную params, но когда вызывается devise, параметры для текстовой области исчезают, и они заменяются на devise params.

Любая идея, как мне заставить это работать

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

Вы можете сохранить текстовую область в переменной сеанса, например

  • передать значение в параметрах, когда пользователь регистрируется / регистрируется
  • в контроллере, сохранить его в переменной сеанса (session[:text_area] = params[:text_area]
  • затем после входа или регистрации вы будете перенаправлены на страницу комментариев, и вы сможете
    Заново заполните объект @comment в методе контроллера, используя session[:text_area], и удалите его.

Вы можете прочитать о Rails Sessions здесь Там также можно использовать куки (если текстовое содержимое невелико) или HTML localStorage (если ваш браузер его поддерживает)

0 голосов
/ 05 июля 2011

попробуйте

<% if current_user %>
<input class="submit-button" id="comment_submit_nlogged"  value="Post!"/>
<%= f.submit :value => t(:submit_comment_text), :class => "submit-button" %>
<% else %>
Please signed in for posting comments!
<% end %>

current_user - это встроенный метод разработки.Вы просто проверяете, существует ли пользователь (подписан или нет)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...