1

サイトを Heroku にアップする作業をしてい//= require_tree .て、application.js ファイルに追加していないことに気付きました。これが、JS ファイルが読み込まれていない理由だと思います。

それを追加した後、本番モードで Heroku にプッシュすると、「undefined method 'user_signed_in?'」というエラーが表示されます。#<#:0x00000003fd2d18> の場合"

私はuser_signed_in?自分の意見ですべての参照をに変更しようとしましsigned_in?(:user)たが、違いはありません。私は Rails 3.2.13 を実行しています。これが、Gemfile で Devise gem を取得する方法です。

gem "devise", :git => "git://github.com/plataformatec/devise.git"

何かアドバイス?

更新- Routes.rb

BrainDb::Application.routes.draw do

devise_for :users

resources :submissions
get "/submissions/new(.:format)" => "submissions#new"
get "/submissions/:id(.:format)" => "submissions#show"
post "/submissions/:id(.:format)" => "submissions#update"

resources :folders

root to: 'home#index'

scope "api" do
get "/submissions(.:format)" => "submissions#index"
get "/submissions/:id(.:format)" => "submissions#show"
get "/:user_id/submissions(.:format)" => "submissions#usercontent"
get "/:user_id/submissions/:id(.:format)" => "submissions#usersubmission"



get "/:user_id/folders(.:format)" => "folders#userfolders"

get "/submissions/:id/edit(.:format)" => "submissions#edit"

get "/folders/new(.:format)" => "folders#new"

end

アプリケーション.js:

//= require jquery
//= require jquery_ujs
//= require_tree .

私が使用するApplication.html.erb:

<% if user_signed_in? %>

<div id="fixed_nav">
<h3 id="logo"><a href="/">chakra</a></h3>
<%= form_tag(folders_path, :method => "get", class: "navbar-form", id: "search-form") do %>
    <div class="input-append">
        <%= text_field_tag :search, params[:search], placeholder: "Search for anything", :class => "form-field" %>
        <button class="btn btn-edit" type="submit form-submit"><i class="icon-search"></i></button>
    </div>
<% end %>
<div id="settings-links">
    <%= link_to "Settings", edit_user_registration_path, :method => :get %>
    <%= link_to "Sign out", destroy_user_session_path, :method => :delete %>
</div>
</div>

<% else %>

<div id="fixed_nav">
<h3><a href="/">chakra</a></h3>
</div>

<% end %>

ユーザー.rb:

class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
     :recoverable, :rememberable, :trackable, :validatable

# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation, :remember_me, :user_id, :submissions, :folders
# attr_accessible :title, :body

has_many :submissions
has_many :folders

end
4

1 に答える 1

0

時々、ApplicationController のメソッド 'clear_helpers' が、Devise がヘルパーをロードするのをブロックしています。

このメソッドを削除すると、青信号になるはずです。

config.action_controller.include_all_helpers = false

あなたのapplication.rbで

于 2013-08-28T03:36:46.943 に答える