2012-02-27 8 views
2

私のルートにある変数名に基づいてレコードの数を返します。ですから、私が "Person"モデルと "Car"モデル(またはその他のモデル)を持っていれば、これらの変数のいずれかを変数に代入して結果を得ることができるようにしたいと考えています。RoRを使用してアプリケーションで変数モデル名を許可する必要があります

私が試してみた:

@model = params[:model] 
@model.find(:all).count 

を、私はエラーを取得する:任意の助け

undefined method `find' for "Person":String 

感謝を!

+3

FYIでは、 'Person.find(:all).count'の代わりに' Person.count'を実行する必要があります。最初の方法は 'select count(*)'を使い、2番目の方法はテーブル全体をメモリに問い合わせます。 – meagar

答えて

5

これを試してみてください:

@model = params[:model].constantize 
@model.find(:all).count 

Constantizeは、一定にして、文字列になります。

+0

ありがとう!それはうまくいった! – astuttle

+0

あなたは大歓迎です!この回答を回答としてマークして、同じ質問のある他の人が、一目でそれがうまく答えられたことを知るようにしてください。 – MrDanA

関連する問題