2

ActiveAdminは、私たちの ActiveRecord モデルの完全に茶色の足場を作成するのに非常に便利であることがわかりました。ただし、私たちのモデルには float (および一部の decimal) 列があり、ActiveAdmin はそれらのフィルターを作成できません。

例えば、

ActiveAdmin.register ForexRate do
  filter :rate, :as => :numeric
end

私に NoMethodError を与える、と言って

undefined method `rate_gt' for #<MetaSearch::Searches::ForexRate:0x007fa4427bb018>

ここで何が間違っていますか?前もって感謝します!

PS同じフィルターが整数列で機能することを確認しました。

4

2 に答える 2

0

問題は、またはの代わりにrateasを持っている私のテーブルからのもののようです。FLOATまたはDECIMALに変更すると、問題が修正されました。REALFLOATDECIMAL(x,y)

列がREALまたはその他の認識できないタイプの場合、ActiveRecord :: Base#inspectが次のようになることも興味深いです。

>> ForexRate
=> ForexRate(id: integer, created_at: timestamp, updated_at: timestamp, rate:  , from: string, to:string)

(横の空白に注意してくださいrate:

于 2012-11-04T09:07:32.073 に答える
0

ソースをすばやく見ると、あなたが正しくやっているように見えます。私はこれを問題なく自分で行いました。デフォルトでは、ActiveAdmin はフロートをキャッチし、それらに数値フィルターを適用する必要があります。指定せず:as => :numericに、それが機能するかどうかを確認してみましたか? フィールドを文字列ではなく浮動小数点数として DB に格納することを確認できますか? 最後に、存在し、適切に名前が付けられた列を参照していますか??

于 2012-10-30T17:29:23.277 に答える