Error Heroku NoMethod, remember_token =

My application works without any problems locally, but as soon as I click on Heroku, the logs show a NoMethodError. Looking through my code, I really do not see what I am missing right away. Especially, why will he work locally, but at Heroku will he throw NoMethod?

Error

Started POST "/users" for <IP> Processing by UsersController#create as HTML Completed 500 Internal Server Error in 102ms app/models/user.rb:38:in `create_remember_token' app/controllers/users_controller.rb:28:in `create' NoMethodError (undefined method `remember_token=' for #<User:0x000000052e8fb0>): 

user.rb

 class User < ActiveRecord::Base attr_accessible :email, :name, :password, :password_confirmation, :image has_secure_password has_many :microposts, dependent: :destroy mount_uploader :image, AvatarUploader before_save { |user| user.email = email.downcase } before_save :create_remember_token validates :name, presence: true, length: { maximum: 50} VALID_EMAIL_REGEX = /\A[\w+\-.] +@ [az\d\-.]+\.[az]+\z/i validates :email, presence: true, format: { with: VALID_EMAIL_REGEX }, uniqueness: { case_sensitive: false } validates :password, length: {minimum: 6} validates :password_confirmation, presence: true private def create_remember_token self.remember_token = SecureRandom.urlsafe_base64 end 

user_controller.rb

 class UsersController < ApplicationController before_filter :signed_in_user, only: [:index, :edit, :update, :destroy] before_filter :correct_user, only: [:edit, :update] before_filter :admin_user, only: :destroy def index @users = User.paginate(page: params[:page]) end def show @user = User.find(params[:id]) @microposts = @user.microposts.paginate(page: params[:page]) end def new @user = User.new end def destroy User.find(params[:id]).destroy flash[:success] = "User destroyed." redirect_to users_path end def create @user = User.new(params[:user]) if @user.save sign_in @user flash[:success] = "Welcome to El Beano" redirect_to @user else render 'new' end end def edit @user = User.find(params[:id]) end def update @user = User.find(params[:id]) if @user.update_attributes(params[:user]) flash[:success] = 'Profile updated' sign_in @user redirect_to @user else render 'edit' end end private def correct_user @user = User.find(params[:id]) redirect_to(root_path) unless current_user?(@user) end def admin_user redirect_to(root_path) unless current_user.admin? end end 
+5
source share
1 answer

It looks like you uploaded your code to Heroku, but the database migration that created this column did not start or did not execute correctly.

Can you check if there is a column?

In addition, you tried to log into the console session on your heroku instance:

 heroku run bash --app my_app bundle exec rails c 

Then check that you can access this property in this environment?

+3
source

All Articles