NoMethodError: undefined method `password_digest=

Hello,

I did all the steps from the Hartl tutorial but as soon as I do this :

User.create(name: “Michael H.”, email:
[email protected]”,password:
“foobar”, password_confirmation: “foobar”)

on the rails console, I see this error message :

NoMethodError: undefined method password_digest=' for #<User:0x00000004489fc8> from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activemodel-4.2.0.beta4/lib/active_model/attribute_methods.rb:435:inmethod_missing’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activemodel-4.2.0.beta4/lib/active_model/secure_password.rb:125:in
password=' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_assignment.rb:54:inpublic_send’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_assignment.rb:54:in
_assign_attribute' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_assignment.rb:41:inblock in assign_attributes’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_assignment.rb:35:in
each' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/attribute_assignment.rb:35:inassign_attributes’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/core.rb:556:in
init_attributes' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/core.rb:277:ininitialize’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/inheritance.rb:61:in
new' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/inheritance.rb:61:innew’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activerecord-4.2.0.beta4/lib/active_record/persistence.rb:33:in
create' from (irb):4 from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/railties-4.2.0.beta4/lib/rails/commands/console.rb:110:instart’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/railties-4.2.0.beta4/lib/rails/commands/console.rb:9:in
start' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/railties-4.2.0.beta4/lib/rails/commands/commands_tasks.rb:68:inconsole’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/railties-4.2.0.beta4/lib/rails/commands/commands_tasks.rb:39:in
run_command!' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/railties-4.2.0.beta4/lib/rails/commands.rb:17:in<top (required)>’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:in
require' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:inblock in require’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:237:in
load_dependency' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:252:inrequire’
from /home/ubuntu/workspace/sample_app/bin/rails:8:in <top (required)>' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:inload’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:in
block in load' from /usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:237:inload_dependency’
from
/usr/local/rvm/gems/ruby-2.1.4@rails4/gems/activesupport-4.2.0.beta4/lib/active_support/dependencies.rb:246:in
load' from /usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:inrequire’
from
/usr/local/rvm/rubies/ruby-2.1.4/lib/ruby/site_ruby/2.1.0/rubygems/core_ext/kernel_require.rb:54:in
`require’

Roelof

On Dec 1, 2014, at 10:32 AM, Roelof W. [email protected] wrote:

Hello,

I did all the steps from the Hartl tutorial but as soon as I do this :

User.create(name: “Michael H.”, email: “[email protected]”,password:
“foobar”, password_confirmation: “foobar”)

on the rails console, I see this error message :

Make sure that your Gemfile looks EXACTLY the same as Señor Hartl’s. I
am betting you are missing the bcrypt library. (It’s commented out in a
default rails new generated site.

To use ActiveModel has_secure_password

gem ‘bcrypt-ruby’, ‘~> 3.0.0’

Walter

I have exactly what Hartl says.

He says to change my gem file to this :

source ‘https://rubygems.org
gem ‘rails’, '4.2.0.rc1’gem ‘bcrypt’,
‘3.1.7’

And there is no mention about bcrypt-rubt

Roelof

Op maandag 1 december 2014 16:40:41 UTC+1 schreef Walter Lee D.:

It may have been renamed since the example I looked at. I haven’t used
4.2 yet. (Okay, just checked, and it is the way you describe – same
version, even – in 4.1. Sorry for the noise.)

Walter

On 1 December 2014 at 15:38, Walter Lee D. [email protected]
wrote:

Make sure that your Gemfile looks EXACTLY the same as Señor Hartl’s. I am
betting you are missing the bcrypt library. (It’s commented out in a default
rails new generated site.

To use ActiveModel has_secure_password

gem ‘bcrypt-ruby’, ‘~> 3.0.0’

Also did you create the password_digest field in the database as in
listing 6.32 and run db:migrate? Check in db/schema.rb to see if that
field exists, and make sure it is spelled correctly.

Colin

On 1 December 2014 at 15:44, Roelof W. [email protected] wrote:

I have exactly what Hartl says.

He says to change my gem file to this :

source ‘https://rubygems.org

gem ‘rails’, ‘4.2.0.rc1’
gem ‘bcrypt’, ‘3.1.7’

Did you run bundle install after that? It does not look as if you are
using 4.2.0.rc1.

And please don’t top post, it makes it difficult to follow the thread.
Thanks.

Colin

Yep, I did all the steps.

Here is my scheme.rb file :

encoding: UTF-8

This file is auto-generated from the current state of the database.

Instead

of editing this file, please use the migrations feature of Active

Record
to

incrementally modify your database, and then regenerate this schema

definition.

Note that this schema.rb definition is the authoritative source for

your

database schema. If you need to create the application database on

another

system, you should be using db:schema:load, not running all the

migrations

from scratch. The latter is a flawed and unsustainable approach (the

more
migrations

you’ll amass, the slower it’ll run and the greater likelihood for

issues).

It’s strongly recommended that you check this file into your version

control system.

ActiveRecord::Schema.define(version: 20141201145107) do

create_table “users”, force: true do |t|
t.string “name”
t.string “email”
t.datetime “created_at”, null: false
t.datetime “updated_at”, null: false
t.string “password_digest”
end

add_index “users”, [“email”], name: “index_users_on_email”, unique:
true

end

Op maandag 1 december 2014 16:48:44 UTC+1 schreef Walter Lee D.:

On 1 December 2014 at 15:51, Roelof W. [email protected] wrote:

Yep, I did all the steps.

Though have not responded to my request that you do not top post. :frowning:

So your Gemfile is exactly the same as in the tutorial? If you think
so then please post it here, along with Gemfile.lock

Colin.

Op maandag 1 december 2014 17:15:06 UTC+1 schreef Colin L.:

Colin.

Here my gem file :

source ‘https://rubygems.org
gem ‘rails’, ‘4.2.0.beta4’
gem ‘sass-rails’, ‘5.0.0.beta1’
gem ‘bootstrap-sass’, ‘3.2.0.0’
gem ‘uglifier’, ‘2.5.3’
gem ‘coffee-rails’, ‘4.0.1’
gem ‘jquery-rails’, ‘4.0.0.beta2’
gem ‘turbolinks’, ‘2.3.0’
gem ‘jbuilder’, ‘2.2.3’
gem ‘sdoc’, ‘0.4.0’, group: :doc
gem ‘arel’, ‘6.0.0.beta2’
gem ‘bcrypt’, ‘3.1.7’

group :development, :test do
gem ‘sqlite3’, ‘1.3.9’
gem ‘byebug’, ‘3.4.0’
gem ‘web-console’, ‘2.0.0.beta3’
gem ‘spring’, ‘1.1.3’
end
group :test do
gem ‘minitest-reporters’, ‘1.0.5’
gem ‘mini_backtrace’, ‘0.1.3’
gem ‘guard-minitest’, ‘2.3.1’
end
group :production do
gem ‘pg’, ‘0.17.1’
gem ‘rails_12factor’, ‘0.0.2’
end

and my gem_file.lock :
remote: https://rubygems.org/
specs:
actionmailer (4.2.0.beta4)
actionpack (= 4.2.0.beta4)
actionview (= 4.2.0.beta4)
activejob (= 4.2.0.beta4)
mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 1.0, >= 1.0.4)
actionpack (4.2.0.beta4)
actionview (= 4.2.0.beta4)
activesupport (= 4.2.0.beta4)
rack (~> 1.6.0.beta)
rack-test (~> 0.6.2)
rails-dom-testing (~> 1.0, >= 1.0.4)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
actionview (4.2.0.beta4)
activesupport (= 4.2.0.beta4)
builder (~> 3.1)
erubis (~> 2.7.0)
rails-dom-testing (~> 1.0, >= 1.0.4)
rails-html-sanitizer (~> 1.0, >= 1.0.1)
activejob (4.2.0.beta4)
activesupport (= 4.2.0.beta4)
globalid (>= 0.3.0)
activemodel (4.2.0.beta4)
activesupport (= 4.2.0.beta4)
builder (~> 3.1)
activerecord (4.2.0.beta4)
activemodel (= 4.2.0.beta4)
activesupport (= 4.2.0.beta4)
arel (>= 6.0.0.beta2, < 6.1)
activesupport (4.2.0.beta4)
i18n (>= 0.7.0.beta1, < 0.8)
json (~> 1.7, >= 1.7.7)
minitest (~> 5.1)
thread_safe (~> 0.1)
tzinfo (~> 1.1)
ansi (1.4.3)
arel (6.0.0.beta2)
bcrypt (3.1.7)
binding_of_caller (0.7.3.pre1)
debug_inspector (>= 0.0.1)
bootstrap-sass (3.2.0.0)
sass (~> 3.2)
builder (3.2.2)
byebug (3.4.0)
columnize (~> 0.8)
debugger-linecache (~> 1.2)
slop (~> 3.6)
celluloid (0.16.0)
timers (~> 4.0.0)
coderay (1.1.0)
coffee-rails (4.0.1)
coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.0)
coffee-script (2.3.0)
coffee-script-source
execjs
coffee-script-source (1.8.0)
columnize (0.8.9)
debug_inspector (0.0.2)
debugger-linecache (1.2.0)
erubis (2.7.0)
execjs (2.2.2)
ffi (1.9.6)
formatador (0.2.5)
globalid (0.3.0)
activesupport (>= 4.1.0)
guard (2.9.0)
formatador (>= 0.2.4)
listen (~> 2.7)
lumberjack (~> 1.0)
pry (>= 0.9.12)
thor (>= 0.18.1)
guard-minitest (2.3.1)
guard (~> 2.0)
minitest (>= 3.0)
hike (1.2.3)
hitimes (1.2.2)
i18n (0.7.0.beta1)
jbuilder (2.2.3)
activesupport (>= 3.0.0, < 5)
multi_json (~> 1.2)
jquery-rails (4.0.0.beta2)
rails-dom-testing (~> 1.0)
railties (>= 4.2.0.beta, < 5.0)
thor (>= 0.14, < 2.0)
json (1.8.1)
listen (2.8.3)
celluloid (>= 0.15.2)
rb-fsevent (>= 0.9.3)
rb-inotify (>= 0.9)
loofah (2.0.1)
nokogiri (>= 1.5.9)
lumberjack (1.0.9)
mail (2.6.3)
mime-types (>= 1.16, < 3)
method_source (0.8.2)
mime-types (2.4.3)
mini_backtrace (0.1.3)
minitest (> 1.2.0)
rails (>= 2.3.3)
mini_portile (0.6.1)
minitest (5.4.3)
minitest-reporters (1.0.5)
ansi
builder
minitest (>= 5.0)
ruby-progressbar
multi_json (1.10.1)
nokogiri (1.6.5)
mini_portile (~> 0.6.0)
pg (0.17.1)
pry (0.10.1)
coderay (~> 1.1.0)
method_source (~> 0.8.1)
slop (~> 3.4)
rack (1.6.0.beta2)
rack-test (0.6.2)
rack (>= 1.0)
rails (4.2.0.beta4)
actionmailer (= 4.2.0.beta4)
actionpack (= 4.2.0.beta4)
actionview (= 4.2.0.beta4)
activejob (= 4.2.0.beta4)
activemodel (= 4.2.0.beta4)
activerecord (= 4.2.0.beta4)
activesupport (= 4.2.0.beta4)
bundler (>= 1.3.0, < 2.0)
railties (= 4.2.0.beta4)
sprockets-rails (~> 3.0.0.beta1)
rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.5)
activesupport (>= 4.2.0.beta, < 5.0)
nokogiri (~> 1.6.0)
rails-deprecated_sanitizer (>= 1.0.1)
rails-html-sanitizer (1.0.1)
loofah (~> 2.0)
rails_12factor (0.0.2)
rails_serve_static_assets
rails_stdout_logging
rails_serve_static_assets (0.0.2)
rails_stdout_logging (0.0.3)
railties (4.2.0.beta4)
actionpack (= 4.2.0.beta4)
activesupport (= 4.2.0.beta4)
rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0)
rake (10.4.0)
rb-fsevent (0.9.4)
rb-inotify (0.9.5)
ffi (>= 0.5.0)
rdoc (4.1.2)
json (~> 1.4)
ruby-progressbar (1.7.0)
sass (3.4.9)
sass-rails (5.0.0.beta1)
railties (>= 4.0.0, < 5.0)
sass (~> 3.2)
sprockets (~> 2.12)
sprockets-rails (>= 2.0, < 4.0)
sdoc (0.4.0)
json (~> 1.8)
rdoc (~> 4.0, < 5.0)
slop (3.6.0)
spring (1.1.3)
sprockets (2.12.3)
hike (~> 1.2)
multi_json (~> 1.0)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sprockets-rails (3.0.0.beta1)
actionpack (>= 4.0)
activesupport (>= 4.0)
sprockets (~> 2.8)
sqlite3 (1.3.9)
thor (0.19.1)
thread_safe (0.3.4)
tilt (1.4.1)
timers (4.0.1)
hitimes
turbolinks (2.3.0)
coffee-rails
tzinfo (1.2.2)
thread_safe (~> 0.1)
uglifier (2.5.3)
execjs (>= 0.3.0)
json (>= 1.8.0)
web-console (2.0.0.beta3)
activemodel (~> 4.0)
binding_of_caller (= 0.7.3.pre1)
railties (~> 4.0)
sprockets-rails (>= 2.0, < 4.0)
PLATFORMS
ruby
DEPENDENCIES
arel (= 6.0.0.beta2)
bcrypt (= 3.1.7)
bootstrap-sass (= 3.2.0.0)
byebug (= 3.4.0)
coffee-rails (= 4.0.1)
guard-minitest (= 2.3.1)
jbuilder (= 2.2.3)
jquery-rails (= 4.0.0.beta2)
mini_backtrace (= 0.1.3)
minitest-reporters (= 1.0.5)
pg (= 0.17.1)
rails (= 4.2.0.beta4)
rails_12factor (= 0.0.2)
sass-rails (= 5.0.0.beta1)
sdoc (= 0.4.0)
spring (= 1.1.3)
sqlite3 (= 1.3.9)
turbolinks (= 2.3.0)
uglifier (= 2.5.3)
web-console (= 2.0.0.beta3)

Roelof

On 1 December 2014 at 16:20, Roelof W. [email protected] wrote:

so then please post it here, along with Gemfile.lock

Colin.

Here my gem file :

source ‘https://rubygems.org
gem ‘rails’, ‘4.2.0.beta4’

Are you following
Learn Enough to Be Dangerous?
Listing 6.33 shows a different version of Rails (as I have already
pointed out). Please check that your Gemfile is /exactly/ the same as
in the tutorial, then run bundle update. There is no guarantee that
is the issue but you must rule it out first.

Colin

On 1 December 2014 at 17:04, Roelof W. [email protected] wrote:

Yep, I did all the steps.
Here my gem file :
is the issue but you must rule it out first.

You are right. The version changed in the time that I follow that tutorial.
I now facing this problem :

Bundler could not find compatible versions for gem “arel”:

Did you check, as I have suggested several times that your Gemfile is
exactly the same as required in the tutorial?

Op maandag 1 december 2014 17:39:01 UTC+1 schreef Colin L.:

Though have not responded to my request that you do not top post. :frowning:
source ‘https://rubygems.org

gem ‘arel’, ‘6.0.0.beta2’
gem ‘mini_backtrace’, ‘0.1.3’
actionmailer (4.2.0.beta4)
rails-dom-testing (~> 1.0, >= 1.0.4)
activemodel (4.2.0.beta4)
thread_safe (~> 0.1)
columnize (~> 0.8)
execjs
guard (2.9.0)
i18n (0.7.0.beta1)
rb-fsevent (>= 0.9.3)
rails (>= 2.3.3)
pg (0.17.1)
actionview (= 4.2.0.beta4)
activesupport (>= 4.2.0.beta, < 5.0)
actionpack (= 4.2.0.beta4)
sass (3.4.9)
sprockets (2.12.3)
thread_safe (0.3.4)
web-console (2.0.0.beta3)
byebug (= 3.4.0)
sdoc (= 0.4.0)

You are right. The version changed in the time that I follow that
tutorial.
I now facing this problem :

Bundler could not find compatible versions for gem “arel”:
In Gemfile:
rails (= 4.2.0.rc1) ruby depends on
activerecord (= 4.2.0.rc1) ruby depends on
arel (~> 6.0) ruby
arel (6.0.0.beta2)

Roelof

Edit 1 : I can delete the arel version but then I will run into this
problem :
https://groups.google.com/forum/#!topic/rubyonrails-talk/9KY84ScB_6A

Op maandag 1 december 2014 18:12:56 UTC+1 schreef Colin L.:

Op maandag 1 december 2014 17:15:06 UTC+1 schreef Colin L.:

tutorial.

    arel (~> 6.0) ruby
arel (6.0.0.beta2)

Roelof

Edit 1 : I can delete the arel version but then I will run into this
problem
: Redirecting to Google Groups

Yes, I am

I am also learning now…Have you tried “has_secure_password” in the
User
model.