加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails-3 – 我们可以使用refinerycms进行用户身份验证

发布时间:2020-12-17 02:43:56 所属栏目:百科 来源:网络整理
导读:我正在开发一个网站,我必须为此进行用户登录和注册表单以进行身份??验证.我的问题是我们可以只使用refinerycms这样做,如果有可能请告诉我如何做到这一点.如果不可能那么请告诉我哪种方法最好.我试图使用refinerycms实现用户身份验证.我是炼油厂的新手. 解决
我正在开发一个网站,我必须为此进行用户登录和注册表单以进行身份??验证.我的问题是我们可以只使用refinerycms这样做,如果有可能请告诉我如何做到这一点.如果不可能那么请告诉我哪种方法最好.我试图使用refinerycms实现用户身份验证.我是炼油厂的新手.

解决方法

炼油厂使用设计,因此您也可以使用它.您可以创建一个可能如下所示的模型:

module Refinery
  module Partners
    class Partner < Refinery::Core::BaseModel
      self.table_name = 'refinery_partners'      

      acts_as_indexed :fields => [:name]

      validates :email,:presence => true,:uniqueness => true

      #devise methods
      devise :database_authenticatable,:recoverable,:rememberable,:trackable,:validatable,:authentication_keys => [:email]


    end
  end
end

而不是忘记迁移:

class CreatePartnersPartners < ActiveRecord::Migration

  def up
    create_table :refinery_partners do |t|
      t.string :email
      t.string :name

      ## Database authenticatable
      t.string :encrypted_password,:null => false,:default => ""

      ## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      t.integer  :sign_in_count,:default => 0
      t.datetime :current_sign_in_at
      t.datetime :last_sign_in_at
      t.string   :current_sign_in_ip
      t.string   :last_sign_in_ip

      t.timestamps
    end

  end

  def down
    if defined?(::Refinery::UserPlugin)
      ::Refinery::UserPlugin.destroy_all({:name => "refinerycms-partners"})
    end

    if defined?(::Refinery::Page)
      ::Refinery::Page.delete_all({:link_url => "/partners/partners"})
    end

    drop_table :refinery_partners

  end

end

这应该创建您可以使用的基本模型.要完成,请更改扩展中的routes.rb以添加设计路线:

devise_for :partners,:class_name => "Refinery::Partners::Partner",:controllers => {:sessions => 'refinery/partners/sessions',:passwords => 'refinery/partners/passwords'}

并覆盖refinery / partners / passwords_controller.rb

module Refinery
  module Partners
    class PasswordsController < Devise::PasswordsController
    end
  end
end

和炼油厂/合作伙伴/ sessions_controller.rb

module Refinery
  module Partners
    class SessionsController < Devise::SessionsController
    end
  end
end

现在你应该拥有你需要的一切

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读