[英]ActiveAdmin to filter float fields on ActiveRecord models
我發現ActiveAdmin對於為ActiveRecord模型創建全棕支架非常有用。 但是,我們的模型具有浮點(和一些小數點)列,並且ActiveAdmin無法為其創建過濾器。
例如,
ActiveAdmin.register ForexRate do
filter :rate, :as => :numeric
end
給我NoMethodError,說
undefined method `rate_gt' for #<MetaSearch::Searches::ForexRate:0x007fa4427bb018>
我在這里做錯了什么? 提前致謝!
PS我已經確認了相同的過濾器適用於整數列。
快速查看源代碼 ,看來您做對了。 我自己做的,沒有問題。 默認情況下,ActiveAdmin應該捕獲浮點並將數字過濾器應用於它們。 您是否嘗試過不指定:as => :numeric
並查看是否可行? 您可以確認將字段以浮點數而不是字符串形式存儲在數據庫中嗎? 最后,是否引用確實存在且名稱正確的列?
看起來問題出在我的表中,其rate
為REAL
而不是FLOAT
或DECIMAL(x,y)
。 將其更改為FLOAT或DECIMAL可以解決此問題。
還有趣的是,當列為REAL或其他無法識別的類型時,ActiveRecord :: Base#inspect變為:
>> ForexRate
=> ForexRate(id: integer, created_at: timestamp, updated_at: timestamp, rate: , from: string, to:string)
(請注意rate:
旁邊的空白:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.