その文字列"User.first"
を ActiveRecord クエリに変換する方法はありますか?
User.first
この文字列は何でもかまいません。実行可能にしたいのです。
その文字列"User.first"
を ActiveRecord クエリに変換する方法はありますか?
User.first
この文字列は何でもかまいません。実行可能にしたいのです。
あなたはsthのように試すことができます
Kernel.const_get("User").send('first')
kernel#evalのドキュメントから:
eval(string [、binding [、filename [、lineno]]])→objクリックしてソースを切り替えます
文字列内のRuby式を評価します。Bindingオブジェクトである必要があるバインディングが指定されている場合、評価はそのコンテキストで実行されます。オプションのfilenameおよびlinenoパラメーターが存在する場合、構文エラーを報告するときにそれらが使用されます。
ただし、@ andrew-marshallが正しく指摘しているように、検証されていない入力を使用している場合、これは大きなセキュリティホールです。汚染されたデータと$SAFEレベルの詳細については、開始点としてRubyをSafeにロックするを参照してください。