2013-07-04 91 views
0

我正在构建我的第一个Rails应用程序,出于某种奇怪的原因,它似乎像用户会话正在被扔掉,我不知道如何解决它。我的意思是,我的索引模板设置为<% if user_signed_in? %>为真,他们只会看到应用程序及其所有数据,否则他们会看到一个注册页面。一切似乎工作,但当您登录后刷新页面,像注销(destroy_user_session_path)按钮的东西就消失了。Rails应用程序用户会话无法正常工作?

以下是我的代码。忽略所有Angular的东西 - 我正在切换它,因为我决定过早使用它。

<% if user_signed_in? %> 

<%= link_to "Sign out", destroy_user_session_path, :method => :delete %> 

<div class="site_container" ng-controller="SubmissionsCtrl"> 

    <div class= "row-fluid" id="indexrow"> 
     <div class="span7"> 
      <form id="postSubmit" action="/submissions" method="post"> 
        <%= hidden_field_tag :user_id, current_user.id %> 
        <label for="titleinput">Title</label> 
        <input type="text" id="titleinput" name="title" placeholder="Title"></input> 
        <label for="contentinput">Content</label> 
        <textarea id="contentinput" rows="6" name="content" placeholder="What's on your mind?"></textarea> 
        <button type="submit" class="btn btn-primary" style="margin-top:10px">Save</button> 
      </form> 
     </div> 
     <div class="span5"> 
      <div id="submission-list-container"> 
       <ul id="indexSubmissions"> 
         <% current_user.submissions.each do |i| %> 
          <%= i.title %> 
          <%= i.content %> 
         <% end %> 
        </li> 
       </ul> 
      </div> 
     </div> 
    </div> 

</div> 

<% else%> 


<div id="intro_page_center"> 
<h2 id="big_intro">Explore your mind.</h2> 
<div id="registration_login"> 
    <a href="users/sign_in" class="sign_in_up">Log in</a> 
    <a href="users/sign_up" class="sign_in_up">Sign up</a> 
</div> 
<div id="about_container"> 
    <ul id="about_braindb"> 
     <li> 
      <h3>Save <small>Save stories, videos, recipes, and anything else that defines you.</small></h3> 
     </li> 
     <li> 
      <h3>Learn <small>Discover patterns, connections, and meaningful context in everything you save to BrainDB.</small></h3> 
     </li> 
     <li> 
      <h3>Grow <small>Utilize your newfound abilities to read your subconcious through idea generation, collaboration, and more.</small></h3> 
     </li> 
    </ul> 
</div> 
</div> 

<% end%> 

任何想法它可能是什么?我在某处看到它可能与Rails 3安全性和我的POST表单提交有关,但是我丢失了页面,并且找不到更多信息。

+0

一个很好的开始就是告诉我们你是如何定义'user_signed_in?'的。 –

+0

我正在使用Devise。 –

+0

您可以在您的视图中打印以下内容:“<%= session.inspect%>' –

回答

0

您是否在您的控制器中添加了设备before_filter?

before_filter :authenticate_user! 
+0

是的,它在我的提交控制器中。 –

+0

@TomMaxwell你有这个工作吗? – dewdrops

相关问题