我已经看到了一些关于如何通过设计播种用户/管理员/人员的问题,但没有一个能为我工作,我认为这是因为我使用的是rails4。
我真的需要一粒种子。所以我将它直接放入我的种子文件
admin = Admin.new
admin.email = 'adminone@gmail.com'
admin.password = "topsecret"
admin.password_confirmation = "topsecret"
admin.save!
那不起作用......
这两个都没有...
admin = Admin.create! :name => 'John Doe', :email => 'john@gmail.com', :password => 'topsecret', :password_confirmation => 'topsecret'
种子功能,但是当我尝试登录时,我得到了无效的组合。
思考?我正在使用
devise :database_authenticatable,
:registerable,
#:recoverable,
:rememberable,
:trackable,
:validatable
我的模特。
更新:这是我的整个ApplicationController.rb
class ApplicationController < ActionController::Base
before_filter :set_mail
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def set_mail
@mail_subscriber = MailSubscriber.new(mail_subscriber_params)
end
private
def current_cart
cart = Cart.find(session[:cart_id])
unless cart.active?
cart = Cart.create
session[:cart_id] = cart.id
end
cart
rescue ActiveRecord::RecordNotFound
cart = Cart.create
session[:cart_id] = cart.id
cart
end
def mail_subscriber_params
params.fetch(:mail_subscriber, {}).permit(:email, :name)
end
end
更新#2
admin.valid_password?("topsecret")
给了我,所以种子一定不行吗?
BCrypt::Errors::InvalidHash: invalid hash
答案 0 :(得分:0)
Admin.create! :email => 'john@gmail.com', :password => 'topsecret', :password_confirmation => 'topsecret'
没有用,但是
Admin.create :email => 'john@gmail.com', :password => 'topsecret', :password_confirmation => 'topsecret'
确实有效。不同的是!在“创造”之后
希望这有助于将来遇到此问题的人