簡體   English   中英

Rails 4種子開發管理員

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM