1)这是我的登录页面:
<% provide(:title, 'Sign In') %>
<div data-role="page" data-url="/signin/">
<h1>Sign In</h1>
<%= form_for(:session, url: sessions_path) do |f| %>
<div>
<%= f.text_field :username_or_email, placeholder: "username or email", autofocus: true %>
</div>
<div>
<%= f.password_field :password, placeholder: "password" %>
</div>
<div>
<%= f.submit "Sign In", rel: "external" %>
</div>
<% end %>
</div>
2)这是我登录后的主页:
<% provide(:title, @user.name) %>
<div data-role="page" id="home" data-url="/users/<%= @user.id %>/" >
<div data-role="header">
<a href="#menu">Menu</a>
<h4>Home</h4>
<%= link_to 'New', new_pin_path, rel: "external" %>
</div>
<% if !@user.pins.any? %>
<h3>Welcome to Pins!... Enter your first pin.</h3>
<% end %>
<%= render @user.pins %>
</div>
<div data-role="page" id="menu">
<div class="ui-grid-a center">
<div class="ui-block-a menublock">
<a href="#home">Home</a>
</div>
<div class="ui-block-b menublock">
<%= link_to 'Friends Pins', pins_path %>
</div>
<div class="ui-block-a menublock">
<%= link_to 'Settings', edit_user_path(current_user) %>
</div>
<div class="ui-block-b menublock">
<%= link_to "Sign Out", signout_path, method: "delete" %>
</div>
</div>
</div>
所以基本上,在我登录并尝试点击后,<a href="#menu">Menu</a>
我没有得到任何响应(除非我刷新页面)。
3)这就是我的会话登录的工作方式:我打算粘贴它但它很长,我基本上使用了这里发生的同样的事情: http ://ruby.railstutorial.org/chapters/sign-in-sign -out#top
4) 斜杠(这是 jQuery Mobile 的要求):我认为我的问题可能是因为我没有在所有 url 上设置斜杠,所以我将它添加到我的 application.rb 中:config.action_controller.default_url_options = { :trailing_slash => true }
虽然它修复了很多页面之间的导航,在我的会话登录后无法解决问题。
5) 另请注意,当我登录后刷新主页时,导航栏确实可以正常工作。