Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在主干网中使用Rails路由和助手?_Ruby On Rails_Backbone.js_Devise_Omniauth_Eco - Fatal编程技术网

Ruby on rails 如何在主干网中使用Rails路由和助手?

Ruby on rails 如何在主干网中使用Rails路由和助手?,ruby-on-rails,backbone.js,devise,omniauth,eco,Ruby On Rails,Backbone.js,Devise,Omniauth,Eco,我想在我的Backbone.js代码中使用designe helpers和routes: 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, ro

我想在我的Backbone.js代码中使用designe helpers和routes:

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模板中使用这些路由和助手?

    对于rails路由,我们使用:

    gem "js-routes"
    
    然后在JS中,您将获得一个全局对象Routes,其中包含Routes.rb中定义的每个Routes的方法,例如:

    Routes.user_session_path()
    
    它也适用于复杂的路径

    Routes.product_attachment_path(2,3)
    => "/products/2/attachments/3"
    
    或与您更相关的omniauth路径

    Routes.user_omniauth_authorize_path("linkedin")
    => "/users/auth/linkedin"
    
    这将只提供URL,但这只是一个开始。例如,要使用方法:delete模拟link\u to,您可以使用表单并使用hidden field\u方法:

    <input type="hidden" name="_method" value="delete"/>
    
    
    
    如果您将此与Routes.destroy_user_session_path()(用于表单的URL)结合使用,您将在ERB模板的一行中复制您可以执行的操作


    只是一个想法,也许对于那些东西(处理设计/用户),你可以让Rails生成模板?您可以始终使用主干/jquery获取完整的HTML页面,并将它们呈现在某处…

    我认为只需呈现web的主要部分,并让rails处理页眉和页脚。但在我的标题中会有一个注销按钮,当点击它时,它会“删除”像我在主要部分中的当前用户这样的数据。问题是我不知道如何在rails中触发这个按钮,并让主干监听它们的动作。你知道吗?嗯,我无法想象一个用例,删除用户会话而不重新加载整个页面是有用的。大多数网站(全部?)在注销时只需重新加载所有内容(这就是您删除“当前用户”的意思,对吗?)。是的,因为会话中保留的任何数据在注销后都应为空。@user2258959使用主干视图来侦听按钮单击事件并执行
    $.ajax(类型:'POST',数据:{u方法:'delete')
    注销。