4

認証目的でユーザーログインと登録フォームを作成する必要がある 1 つの Web サイトを開発しています。私の質問は、refinerycms のみを使用してこれを行うことができるかということです。可能であれば、これを行う方法を教えてください。それが不可能な場合は、どのアプローチが最適かを教えてください。renamerycms を使用してユーザー認証を実装しようとしています。製油所cmsは初めてです。

4

1 に答える 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 ルートを追加します。

  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

今、あなたは必要なものをすべて持っているはずです

于 2012-08-10T09:26:49.937 に答える