2013-08-28 114 views
1

一直在努力让我的网站上Heroku,并意识到我没有添加//= require_tree .到我的application.js文件,我相信这是为什么我的JS文件没有被加载。Rails未定义方法user_signed_in?

添加后,我在生产模式下推到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" 

有什么建议吗?

UPDATE - 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 

的application.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 %> 

User.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 
+0

是否有用户模式?您是否使用设计创建了用户模型? rails generate devise MODEL – techvineet

+0

是的,我已经在本地运行了几个月的应用程序。设计和用户模型在我移除require_tree行时工作,但显然我的JS资源的其余部分不加载。 –

+0

发布您的config/routes.rb并检查设计:database_authenticatable在您的用户模型中。 – techvineet

回答

0

有时,ApplicationController中的方法'clear_helpers'阻塞Devise来加载他的助手。

删除此方法应该是您的绿灯。

config.action_controller.include_all_helpers = false 

在application.rb中

相关问题