0
Rails 5.1
Devise
Devise Invitable
とレールのデフォルトのIDを交換、私が持っている:私のcreate_usres移行ファイルでカスタムIDモデル/懸念/ shared.rbで
module Shared
extend ActiveSupport::Concern
def generate_model_id
self.id = "#{self.class.name}.#{Time.now.to_f.to_s}" if id.blank?
end
を、私が持っている:
class DeviseCreateUsers < ActiveRecord::Migration[5.1]
def change
create_table :users, id: false do |t|
t.column :id, :primary_string
私のモデル/ user.rbでは、私が持っている:私のseeds.rbファイル、I Hで
class User < ActiveRecord::Base
include Shared
enum role: [:user, :vip, :admin]
after_initialize :set_default_role, :if => :new_record?
devise :invitable, :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
をAVE:私はすべての考案モデルエクスポートした
user = User.new(
:email =>'[email protected]',
:password =>'xK#986754',
:password_confirmation =>'xK#986754',
:first_name =>'John',
:last_name =>'Doe',
:role => 1,
:approved => true
)
user.skip_invitation
user.save
(確認、招待状、パスワード、登録、セッションは、ロックを解除)、およびコントローラ/ユーザフォルダの下に、対応するコントローラを置きます。
generate_model_idメソッドをどのコントローラから呼び出すのですか?
これは行く方法の1つではありますが、それは作成時に必要なときにすべてのcretate/updateで呼び出されることを意味します – EastsideDeveloper
この場合、before_createコールバック権限を使用できますか? –