実行環境:
ruby 1.9.3
Rails 3.1.3
コントローラ名からモデル名を取得します。ruby 1.9.3
Rails 3.1.3
# モデル名の取得 @all = @model_name.constantize.find(:all) # モデルオブジェクトの取得 end endコントローラ名を classify するとモデル名が得られます。 class UsersController < ActionController::Base def index @model_name = controller_name.classify
モデル名を constantize するとモデルオブジェクトが得られます。
ただし、これは Rails の規約に則って推測しているだけです。
つまり「規約に則って作られていれば対応する名前はこの名前でしょ?」という具合です。 実際にモデルオブジェクトが取得できたかどうかを判定してあげる必要があるかも。
0 件のコメント:
コメントを投稿