我想在Backbone.js代码中使用Devise助手和路由:
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 %>
如何在index.jst.eco
Backbone.js模板中使用这些路由和帮助?
答案 0 :(得分:0)
对于rails路线,我们使用:
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")
=> "/users/auth/linkedin"
这只会给你网址,但这是一个开始。例如,要使用方法:delete来模拟link_to,您可以使用表单并使用隐藏字段_method:
<input type="hidden" name="_method" value="delete"/>
如果将此与Routes.destroy_user_session_path()(表单的URL)结合使用,您将复制ERB模板中一行中可以执行的操作!
只是一个想法,也许对于那些东西(处理设计/用户),你可以让Rails生成模板?您始终可以使用backbone / jquery来获取完整的HTML页面并将它们呈现为...