そのため、文字列をアクティブ レコード クラスに変換する方法があれば興味があります。
例:Userから継承したクラスがありActiveRecord::Baseます。、などのメソッドを使用できるように、文字列"User"をUserクラスに変換する方法はありますか?ActiveRecordfindwhere
そのため、文字列をアクティブ レコード クラスに変換する方法があれば興味があります。
例:Userから継承したクラスがありActiveRecord::Baseます。、などのメソッドを使用できるように、文字列"User"をUserクラスに変換する方法はありますか?ActiveRecordfindwhere
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(....)