1

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) 另请注意,当我登录后刷新主页时,导航栏确实可以正常工作。

4

1 回答 1

-1

您缺少“data-rel”标签。尝试以下操作:

<a href="#menu" data-rel="dialog">Menu</a>
于 2013-09-02T06:07:03.477 回答