Sinatraプロジェクト用にレーキタスクを作成し、準備ができているものは使用しないことにしました。
#Rakefile
require 'rake/testtask'
require 'rake/clean'
Dir.glob("tasks/*.rake").each { |r| import r }
#/tasks/seed.rake
require 'rubygems'
require 'bundler'
Bundler.require
require 'mongoid'
require_relative '../models/user'
namespace :db do
task :seed do
puts 'Creating a user....'
user1 = User.new email: "email1@gmail.com", password: "test123"
user1.save!
puts 'User has been created.'
end
end
#user.rb
require 'bcrypt'
require 'digest/md5'
require 'openssl'
class User
include Mongoid::Document
include Mongoid::Timestamps
#.........
#gemfile (partly)
source 'http://rubygems.org'
gem 'bcrypt-ruby', require: 'bcrypt'
そして、「ユーザーを作成しています...」というエラーが発生しました。
rake aborted!
undefined method `create!' for BCrypt::Password:Class
/home/alex/ruby_projects/service/models/user.rb:47:in `password='"
#47は次のようになります
def password= pass
self.hashed_password = BCrypt::Password.create! pass, cost: 10
end
通常の開発では、すべてが正常に機能することに注意してください。だから私は私が思うファイルを要求するのを逃しました。
あなたの考え?
ps入れても
require 'bcrypt'
require 'digest/md5'
require 'openssl
/tasks/seed.rake
エラーが残っています。