そのため、文字列をアクティブ レコード クラスに変換する方法があれば興味があります。
例:User
から継承したクラスがありActiveRecord::Base
ます。、などのメソッドを使用できるように、文字列"User"
をUser
クラスに変換する方法はありますか?ActiveRecord
find
where
そのため、文字列をアクティブ レコード クラスに変換する方法があれば興味があります。
例:User
から継承したクラスがありActiveRecord::Base
ます。、などのメソッドを使用できるように、文字列"User"
をUser
クラスに変換する方法はありますか?ActiveRecord
find
where
String#constantize
文字列の名前を持つ定数の値を返します。"User"
これはあなたのクラスUser
です:
"User".constantize
# => User(id: integer, ...)
これを変数に割り当てて、ActiveRecord メソッドを呼び出すことができます。
model = "User".constantize
model.all
# => [#<User id:1>, #<User id:2>, ...]
あなたはあなたのコードを書くだけです
str="User"
class_name=str.constantize
この形式のデータのようになります
User(id: integer, login: string, name: string, email: string, user_rank: integer
クラス名としてのユーザー
2 番目のメソッドは class_name= Object.const_get(str) です。
より安全な方法:
"string".classify.constantize.find(....)