正在开发一个网站,我必须为此做用户登录和注册表格以进行身份验证。我的问题是我们可以只使用refinerycms 来做到这一点,如果可能的话,请告诉我如何做到这一点。如果不可能,请告诉我哪种方法最好。我正在尝试使用refinerycms 实现用户身份验证。我是炼油厂的新手。
问问题
1064 次
1 回答
7
炼油厂使用设计,因此您也可以使用它。您可以创建一个看起来像这样的模型:
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'}
并覆盖炼油厂/合作伙伴/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
现在你应该拥有你需要的一切
于 2012-08-10T09:26:49.937 回答