私はルビーに非常に慣れていないので、何ヶ月もこれに苦労しています。私は広範囲に検索し、答えが言ったことを試しましたが、まだ運がありません. (Ruby On Rails で複数のユーザー モデルを試し、登録ルートを分けて、共通のログイン ルートを 1 つ持つように工夫しましたが、うまくいきませんでした)
私は現在 user.rb モデルを持っており、devise に接続されており、正常に動作しています。
1-サインアップページに、個別の登録フォームにつながる3つのボタンが必要です(ビジネス、マネージャー、および既存のユーザーにそれぞれ1つずつ)。これをroutes.rbで設定しますか? 2-フォームには、それぞれのデータベースに入力されるさまざまな属性があります。3-フォームの記入が完了すると、それぞれのルートに誘導されます。ユーザーは現在のデフォルト ルートに、ビジネスはビジネス ダッシュボードに、マネージャはマネージャ ダッシュボードに移動します。これはまたroutes.rbまたはdeviseにありますか?
ご指導いただければ幸いです。
私はdevise、cancan、およびrolifyのドキュメントを読みましたが、すべてをまとめて機能させることはできないようです。
私はルビーに非常に慣れていないので、何ヶ月もこれに苦労しています。私は広範囲に検索し、答えが言ったことを試しましたが、まだ運がありません. (Ruby On Rails で複数のユーザー モデルを試し、登録ルートを分けて、共通のログイン ルートを 1 つ持つように工夫しましたが、うまくいきませんでした)
私は現在 user.rb モデルを持っており、devise に接続されており、正常に動作しています。
1-サインアップページに、個別の登録フォームにつながる3つのボタンが必要です(ビジネス、マネージャー、および既存のユーザーにそれぞれ1つずつ)。これをroutes.rbで設定しますか? 2-フォームには、それぞれのデータベースに入力されるさまざまな属性があります。3-フォームの記入が完了すると、それぞれのルートに誘導されます。ユーザーは現在のデフォルト ルートに、ビジネスはビジネス ダッシュボードに、マネージャはマネージャ ダッシュボードに移動します。これはまたroutes.rbまたはdeviseにありますか?
ご指導いただければ幸いです。
私はdevise、cancan、およびrolifyのドキュメントを読みましたが、すべてをまとめて機能させることはできないようです。
#user.rb
class User < ActiveRecord::Base
has_many :contibutions
rolify
# Include default devise modules. Others available are:
# :lockable, :timeoutable
devise :database_authenticatable, :registerable, :confirmable,
:recoverable, :rememberable, :trackable, :validatable, :omniauthable
validates_format_of :email, :without => TEMP_EMAIL_REGEX, on: :update
def admin?
has_role?(:admin)
end
def self.find_for_oauth(auth, signed_in_resource = nil)
# Get the identity and user if they exist
identity = Identity.find_for_oauth(auth)
user = identity.user
if user.nil?
# Get the existing user from email if the OAuth provider gives us an email
user = User.where(:email => auth.info.email).first if auth.info.email
# Create the user if it is a new registration
if user.nil?
user = User.new(
name: auth.extra.raw_info.name,
#username: auth.info.nickname || auth.uid,
email: auth.info.email.blank? ? TEMP_EMAIL : auth.info.email,
password: Devise.friendly_token[0,20]
)
user.skip_confirmation!
user.save!
end
# Associate the identity with the user if not already
if identity.user != user
identity.user = user
identity.save!
end
end
user
end
end