2015-02-10 115 views
0

我做的Hartl的教程和我的Rails应用程序工作在发展很好,但在崩溃的Heroku此错误代码:未初始化的常量SessionsHelper(NameError)

application_controller.rb:5:in `<class:ApplicationController>': uninitialized constant ApplicationController::SessionsHelper (NameError) 

这件事发生后,我加入了remember_digest到架构。不知道是否是迁移或

class ApplicationController < ActionController::Base 
    protect_from_forgery with: :exception 
    include SessionsHelper 
end 

sessions_helper.rb位于应用程序/佣工

module SessionsHelper 

    # Logs in the given user. 
    def log_in(user) 
    session[:user_id] = user.id 
    end 

    # Remembers a user in a persistent session. 
    def remember(user) 
    user.remember 
    cookies.permanent.signed[:user_id] = user.id 
    cookies.permanent[:remember_token] = user.remember_token 
    end 

    # Returns the user corresponding to the remember token cookie. 
    def current_user 
    if (user_id = session[:user_id]) 
     @current_user ||= User.find_by(id: user_id) 
    elsif (user_id = cookies.signed[:user_id]) 
     user = User.find_by(id: user_id) 
     if user && user.authenticated?(cookies[:remember_token]) 
     log_in user 
     @current_user = user 
     end 
    end 
    end 

    # Returns true if the user is logged in, false otherwise. 
    def logged_in? 
    !current_user.nil? 
    end 

    def forget(user) 
    user.forget 
    cookies.delete(:user_id) 
    cookies.delete(:remember_token) 
    end 

    # Logs out the current user. 
    def log_out 
    forget(current_user) 
    session.delete(:user_id) 
    @current_user = nil 
    end 
end 

我试图删除我的旧应用程序的Heroku和SessionsHelper之间ApplicationController的问题

的ApplicationController并开始一个新的重置迁移(过去一直努力“排除故障”),但这次并没有奏效。当我运行heroku rake db:migrate时,除了记住的摘要之外,所有的迁移都显示出来。我跑db:再次迁移但不能迁移。下面是迁移:

Migrate.db

20150204074511_create_users.rb     20150204093042_add_phone_number_to_users.rb 
20150204081616_add_index_to_users_email.rb  20150204094519_add_index_to_users_phone_number.rb 
20150204081750_add_password_digest_to_users.rb 20150207093225_add_remember_digest_to_users.rb 

迁移日志

[email protected]:~/workspace/AccessOBD (master) $ heroku run rake db:migrate 
Running `rake db:migrate` attached to terminal... up, run.4474 
    (18.0ms) CREATE TABLE "schema_migrations" ("version" character varying NOT NULL) 
    (8.6ms) CREATE UNIQUE INDEX "unique_schema_migrations" ON "schema_migrations" ("version") 
    ActiveRecord::SchemaMigration Load (1.5ms) SELECT "schema_migrations".* FROM "schema_migrations" 
Migrating to CreateUsers (20150204074511) 
    (0.9ms) BEGIN 
== 20150204074511 CreateUsers: migrating ====================================== 
-- create_table(:users) 
    (15.1ms) CREATE TABLE "users" ("id" serial primary key, "name" character varying, "email" character varying, "created_at" timestamp NOT NULL, "updated_at" timestamp NOT NULL) 
    -> 0.0162s 
== 20150204074511 CreateUsers: migrated (0.0164s) ============================= 

    SQL (1.2ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150204074511"]] 
    (4.0ms) COMMIT 
Migrating to AddIndexToUsersEmail (20150204081616) 
    (0.8ms) BEGIN 
== 20150204081616 AddIndexToUsersEmail: migrating ============================= 
-- add_index(:users, :email, {:unique=>true}) 
    (4.6ms) CREATE UNIQUE INDEX "index_users_on_email" ON "users" ("email") 
    -> 0.0081s 
== 20150204081616 AddIndexToUsersEmail: migrated (0.0082s) ==================== 

    SQL (0.9ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150204081616"]] 
    (5.5ms) COMMIT 
Migrating to AddPasswordDigestToUsers (20150204081750) 
    (0.7ms) BEGIN 
== 20150204081750 AddPasswordDigestToUsers: migrating ========================= 
-- add_column(:users, :password_digest, :string) 
    (1.3ms) ALTER TABLE "users" ADD "password_digest" character varying 
    -> 0.0022s 
== 20150204081750 AddPasswordDigestToUsers: migrated (0.0023s) ================ 

    SQL (0.8ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150204081750"]] 
    (1.7ms) COMMIT 
Migrating to AddPhoneNumberToUsers (20150204093042) 
    (0.7ms) BEGIN 
== 20150204093042 AddPhoneNumberToUsers: migrating ============================ 
-- add_column(:users, :phone, :string) 
    (1.4ms) ALTER TABLE "users" ADD "phone" character varying 
    -> 0.0023s 
== 20150204093042 AddPhoneNumberToUsers: migrated (0.0024s) =================== 

    SQL (0.9ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150204093042"]] 
    (2.8ms) COMMIT 
Migrating to AddIndexToUsersPhoneNumber (20150204094519) 
    (4.4ms) BEGIN 
== 20150204094519 AddIndexToUsersPhoneNumber: migrating ======================= 
-- add_index(:users, :phone, {:unique=>true}) 
    (7.5ms) CREATE UNIQUE INDEX "index_users_on_phone" ON "users" ("phone") 
    -> 0.0110s 
== 20150204094519 AddIndexToUsersPhoneNumber: migrated (0.0111s) ============== 

    SQL (0.8ms) INSERT INTO "schema_migrations" ("version") VALUES ($1) [["version", "20150204094519"]] 
    (4.7ms) COMMIT 

是否有一个原因,该迁移可能不会经历?运行db:再次迁移不会给出任何结果。任何关于您认为问题可能位于何处的信息都将有所帮助,但我无法找到有关导致此问题的任何信息。

+1

确保执行'SessionsHelper'的文件名为'sessions_helper.rb'并放置在'app/helpers'中。 – 2015-02-10 09:50:23

+0

@MarekLipka一切都还好 – 2015-02-10 09:56:48

+0

我觉得把帮手包含进控制器并不合适。这就是担心的问题。你真的需要在你的视图中使用'log_in'方法吗? – BroiSatse 2015-02-10 10:39:36

回答

0

我的问题是,git没有跟踪我添加的任何会话文件,所以它们在我的本地计算机上,但不在github-> heroku上。我只是通过在sessions_helper上进行更改才发现了这一点,然后提交git只是为了获得一条消息,指出没有任何文件发生更改,但有几个(所有会话文件)未被跟踪。

发生了,因为我使用git -am "commit message"而不是git add -A第一个bc我以为-a标志添加了所有内容。应该检查Git确保sessions_helper.rb在那里,所有的答案告诉我检查这个,但我只是检查我的本地机器。

相关问题