2013-12-04 3 views
0

Я хочу использовать DEViSE хелперы и маршруты в моем Backbone.js код:Как использовать маршруты и помощники Rails в Backbone?

user_signed_in? 
user_omniauth_authorize_path(:provider) 
destroy_user_session_path, method: :delete 

Обычно в моих взглядах Rails я могу сделать:

<% if user_signed_in? %> 
    <li><%= link_to current_user.name, root_path %></li> 
    <li><%= link_to 'Logout', destroy_user_session_path, method: :delete %> </li> 
<% else %> 
    <%= link_to "Sign in with provider", user_omniauth_authorize_path(:provider) %> 
<% end %> 

Как я могу использовать эти маршруты и хелперы в my index.jst.eco Backbone.js шаблон?

+1

В чем вопрос? –

ответ

0

Для маршрута рельсы, мы используем:

gem "js-routes" 

Тогда в ваших JS, вы получите глобальный объект Routes с методами для каждого из маршрутов, определенных в routes.rb, например:

Routes.user_session_path() 

Он также работает со сложными путями

Routes.product_attachment_path(2,3) 
=> "/products/2/attachments/3" 

Или более релевантным для вас, OmniAuth дорожках ...

Routes.user_omniauth_authorize_path("linkedin") 
=> "https://stackoverflow.com/users/auth/linkedin" 

Это даст вам только URL-адреса, но это начало. Например, чтобы эмулировать link_to методом: удаление, вы можете использовать форму и использовать скрытое поле _method:

<input type="hidden" name="_method" value="delete"/> 

Если объединить это с Routes.destroy_user_session_path() (для URL вида), вы будете реплицировать то, что вы могли бы сделать в одной строке в ваших шаблонах ERB!

Просто мысль, может быть, для тех вещей (имеющих дело с разработчиками/пользователями), вы можете позволить Rails генерировать шаблоны? Вы всегда можете использовать магистраль/jquery, чтобы получать полные HTML-страницы и делать их некоторыми ...

+0

Я подумал, что просто отрисую основную часть сети и позвольте рельсам заботиться о верхнем и нижнем колонтитулах. Но в моем заголовке будет кнопка выхода из системы, и когда будет нажата кнопка «стереть» данные, такие как current_user, которые у меня есть в основной части. Проблема в том, что я не знаю, как вызвать эту кнопку в рельсах и заставить позвоночник слушать их, чтобы сделать свои действия. У вас есть идея? – user2258959

+0

Хмм, я не могу представить вариант использования, когда было бы полезно удалить сеанс пользователя, но не выполнять полную перезагрузку страницы. Большинство сайтов (все?) Просто перезагружают все, когда вы выходите (это то, что вы подразумеваете под стиранием «current_user», не так ли?). – Enders

+0

Да, потому что любые данные, хранящиеся в сеансе, должны быть пустыми после выхода из системы. – user2258959

 Смежные вопросы

  • Нет связанных вопросов^_^