Rails应用无法从登录页面导航到任何其他页面

时间:2015-01-02 00:03:39

标签: html ruby-on-rails backbone.js

所以我有一个rails + backbone.js应用程序,当用户点击登录链接时,他们无法通过点击标题中的链接导航到任何其他页面。标题有链接返回主页,当您将鼠标悬停在登录页面上的链接上时,浏览器左下方显示该链接指向" session / new"当链接应指向根URL时(" /#")。关于为什么会这样的想法?我的代码如下:

      //application_controller.rb
      class ApplicationController < ActionController::Base
      # Prevent CSRF attacks by raising an exception.
      # For APIs, you may want to use :null_session instead.
      protect_from_forgery with: :exception
      helper_method :current_user, :logged_in?

      private

      def current_user
        return nil unless session[:token]
            @current_user ||= User.find_by_session_token(session[:token])
      end

      def sign_in(user)
        session[:token] = user.reset_session_token!
      end

      def sign_out
        session[:token] = nil
      end

      def logged_in?
            return true unless session[:token].nil?
            false
      end

      def ensure_sign_in
        redirect_to new_session_url unless logged_in?
      end  

    end





  class SessionsController < ApplicationController

  def new

  end

  def create
    @user = User.find_by_credentials(params[:user][:username], params[:user][:password])
    if @user
      sign_in(@user)
      redirect_to root_url
    else
      flash.now[:errors] = "Invalid username or password"
      render :new
    end
  end

  def destroy
    sign_out
    redirect_to root_url

  end

end

// _ header.html.erb     

    <a class="navbar-brand" href= "#">Title
        <!-- <img alt="Brand" src="http://createfunnylogo.com/logo/harrypotter/Expecto.jpg"
        width="200" height="50"> -->
    </a>

    <form class="navbar-form navbar-left" role="search">
            <div class="form-group" id="bloodhound">
                <div id="the-basics">
              <input type="text" class="typeahead" id="nav-search" placeholder="Search">
          </div>
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
          </form>

         <ul class="nav navbar-nav">
        <li><%= link_to 'Home', "#" %></li>
        <% if logged_in? %>
        <li><%= link_to 'Sign Out', session_url, method: :delete %></li>
        <li><%= link_to 'My Profile', "#/users/#{current_user.id}" %></li>
        <% else %>
        <li><%= link_to 'Sign In', new_session_url%></li>
        <% end %>
        </ul>
</nav>

Backbone开始代码:

    window.App= {
    Models: {},
    Collections: {},
    Views: {},
    Routers: {},
    initialize: function() {
        App.Collections.businesses.fetch({
            success: function () {
                new App.Routers.Businesses({
                  $rootEl: $("#content")
                });

                if (!Backbone.History.started) {
                    Backbone.history.start();
                  }

            }
        });
    }
};

0 个答案:

没有答案
相关问题