Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.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 铁轨:;链接到;用于注销和删除未响应的会话_Ruby On Rails_Angularjs - Fatal编程技术网

Ruby on rails 铁轨:;链接到;用于注销和删除未响应的会话

Ruby on rails 铁轨:;链接到;用于注销和删除未响应的会话,ruby-on-rails,angularjs,Ruby On Rails,Angularjs,我有一个应用程序,允许用户在“注册/登录”后查看博客文章,并在会话[:user\u id]中保存他们的id 我遇到的问题是使用“link_to”方法在用户登录后注销。在浏览器中,当我将鼠标悬停在“注销”链接上时,它甚至不表示它是一个链接,而当单击它时,它什么也不做 index.hmtl.erb:controller=>blogs <div ng-controller="BlogController"> <div class="container-fluid">

我有一个应用程序,允许用户在“注册/登录”后查看博客文章,并在
会话[:user\u id]
中保存他们的
id

我遇到的问题是使用“link_to”方法在用户登录后注销。在浏览器中,当我将鼠标悬停在“注销”链接上时,它甚至不表示它是一个链接,而当单击它时,它什么也不做

index.hmtl.erb:controller=>blogs

<div ng-controller="BlogController">



  <div class="container-fluid">
    <div class="row text-center">
      <div class="col-xs-12 col-sm-12">
        <h4 class="user_session_signedInAs_txt">
          Signed in as:
          <span class="user_session_email"><%= session[:email]%></span>
        </h4>
        <h4>
          <%= link_to('Logout', {:controller => "users", :action => 'logout'}, :method => :delete, class: "blog_home_logout" ) %>
        </h4>
        <h4 class="search_blogs_heading">Search Blogs</h4>
      </div>
      <div class="col-sm-2"></div>
      <div class="col-sm-8">
        <h6 class="search_blogs_label">Enter "title" or "date"</h6>
        <input type="text" class="search_blogs_input" ng-model="search_blogs" placeholder=" Title or Date" autofocus>
      </div>
    </div>
    <div class="row">
      <div class="col-sm-2"></div>
      <div class="col-xs-12 col-sm-8">
      <div class="blog_search_div" ng-repeat="blog in blogs | filter: search_blogs | xFutureDates | limitTo: 15" ng-show="search_blogs">
        <br>
        <br>
        <a href="/blog_page?date={{blog.date}}">
          <p class="blog_search_date">{{blog.date}}</p>
          <p class="blog_search_title">{{blog.title}}</p>
        </a>
      </div>
    </div>
    </div>
    </div>

  <div class="container-fluid">
    <div class="row">
      <img class="spa_room_image" src="/assets/SpaTreatmentRoom.jpg">
    </div>
  </div>



  <div class="container-fluid">
    <div class="row text-center">
      <h4 class="recent_blogs_heading">Recent Blogs</h4>
    </div>
    <div class="row">
      <div class="col-xs-12">
        <div ng-repeat="blog in blogs | recentMonths | limitTo:10">
          <a href="/blog_page?date={{blog.date}}">
            <p class="blog_recentBlogs_date">{{blog.date}}</p>
            <p class="blog_recentBlogs_title">{{blog.title}}</p>
            <p class="blog_recentBlogs_description">{{blog.description.trunc(140)}}Read More</p>
          </a>
        </div>
      </div>
    </div>
  </div>



<div class="container-fluid blogs_index">
      <div class="row text-center">
      <h4 class="blog_index_heading">Recent Blogs</h4>
    </div>
    <div class="row text-center">
      <div class="col-xs-12">
        <div ng-repeat="blog in blogs | recentMonths | limitTo:10">
          <a href="/blog_page?date={{blog.date}}">
            <h6 class="archives_index_blog_title">{{blog.title}}</h6>
          </a>
        </div>
      </div>
    </div>
  <div class="row text-center">
      <h4 class="blog_index_heading">Categories</h4>
  </div>
  <div class="row text-center">
    <div class="col-xs-12 col-sm-12">
      <div class="blog_category_div">
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Body Contouring'">Body Contouring</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Breast Reduction Liposuction'">Breast Reduction Liposuction</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Breast Reduction Surgery'">Breast Reduction Surgery</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Cosmetic Surgery'">Cosmetic Surgery</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Cosmetic Surgery Procedures'">Cosmetic Surgery Procedures</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Facelift'">Facelift</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Fat Grafting'">Fat Grafting</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Gynecomastia'">Gynecomastia</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Infographics'">Infographics</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Laser Lift'">Laser Lift</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Laser Liposuction'">Laser Liposuction</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Liposuction'">Liposuction</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Liposuction Surgery'">Male Breast Reduction</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Neck Liposuction'">Neck Liposuction</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Non-Invasive Procedures'">Non-Invasive Procedures</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Plastic Surgeons'">Plastic Surgeons</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Plastic Surgery'">Plastic Surgery</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='SmartLipo'">SmartLipo</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='SmartLipo Triplex'">SmartLipo Triplex</a></h6>
      <h6 class="blog_category_links"><a href="/blog_category_archive?category='Weight Loss'">Weight Loss</a></h6>
    </div>
    </div>
  </div>
</div>


<div class="container-fluid blog_index">
  <div class="row text-center">
      <h4 class="blog_index_heading">Archives</h4>
  </div>
  <div class="row text-center">
    <div class="col-xs-12">
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='October 2015'">October 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='September 2015'">September 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='August 2015'">August 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='July 2015'">July 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='June 2015'">June 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='May 2015'">May 2015</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='October 2014'">October 2014</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='September 2014'">September 2014</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='August 2014'">August 2014</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='July 2014'">July 2014</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='June 2014'">June 2014</a></h6>
      <h6 class="blog_months_links"><a href="/blog_month_archive?month_year='May 2014'">May 2014</a></h6>
    </div>
  </div>
</div>
</div>




</div>
Rails.application.routes.draw do
  ...

  # Users login/signup
  get '/blog_signup' => 'users#new'
  post 'blog_signup' => 'users#create'
  get '/blog_login' => 'users#login'
  post 'blog_attempt_login' => 'users#attempt_login'
  get '/user/blog_logout' => 'users#logout'

  # User_Admins login/signup
  get '/admin_login' => 'user_admins#login'
  post 'admin_attempt_login' => 'user_admins#attempt_login'
  get '/admin_logout' => 'user_admins#logout'

end
通过DOM查看“链接到”的源代码



我已更改路线以匹配
a
标记

这可能不是原因,但您需要解决以下问题:

一些浏览器和一些代理进行“预取”:它们调用页面上的所有“普通”链接并缓存结果,因此当您单击它们时,它们可以更快地响应。他们可能会调用注销链接!因此,您的注销链接不应使用GET方法

您需要将您的注销链接从GET更改为其他内容(POST或更好的删除),当然还需要更改相应的路径

<%= link_to('Logout', {:controller => "users", :action => 'logout'}, :method => :delete) %>
“用户”,:操作=>“注销”},:方法=>:删除)%>
该链接位于具有
ng controller
属性的
div
内。如果您的页面上有一个angular应用程序,那么它将使用javascript更改链接


注销和注销通常在SessionController中完成,而不是在UsersController中完成,因为您不需要对用户模型执行任何操作。(但这更像是一个样式问题。)

您是否尝试过验证您的HTML?我猜这可能是由于一份非常混乱的文件造成的。否则,请在问题中包含呈现的html。谢谢,我使用“注册”视图进行了更新。你能详细说明一下验证HTML吗?HTML似乎已签出。请重新加载页面并使用浏览器中的DOM检查器检查其源代码(对于Chrome/Firefox,通常是键盘上的F12)。
a
标签看起来正确吗?更新你的问题,然后把你在那里找到的东西贴出来。事实上,我之前尝试过这个,但没有任何运气。我还尝试将路由和操作更改为
delete/destroy
,而不是
logout
,但同样的情况也发生了。添加说明:当我尝试添加另一个连接到另一个页面的简单链接时,它会执行相同的操作,并且完全无法访问。将
链接\u移动到
ng控制器
外部解决了此问题。谢谢你的帮助。
<a class="blog_home_logout" rel="nofollow" data-method="delete" href="/user/blog_logout">Logout</a>
<%= link_to('Logout', {:controller => "users", :action => 'logout'}, :method => :delete) %>