[英]Rails 4 Seeding Devise Admins
我已經看到了一些有關如何通過設計為用戶/管理員/人員播種的問題,但是他們都沒有為我工作,我認為這是因為我正在使用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
Admin.create! :email => 'john@gmail.com', :password => 'topsecret', :password_confirmation => 'topsecret'
沒有工作但是
Admin.create :email => 'john@gmail.com', :password => 'topsecret', :password_confirmation => 'topsecret'
做過。 所不同的是! 在“創建”之后
希望這對將來遇到此問題的人有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.