繁体   English   中英

Ruby在轨道上。 Ransack在Money-rails Monetize属性上的搜索

[英]Ruby on rails. Ransack search on money-rails Monetize attribute

我在使用ransack搜索money-rails / Monetized属性时遇到问题。 我只能以美分搜索。 我有一个带钱属性salary的模型(演出)。 我可以用以下方式创建此模型:

 <%= form.input :salary %>

就像我的演出模型一样,这将值保存在salary_cents列中,如我所料:

monetize :salary_cents

然后,我可以在视图中显示工资:

<%= @gig.salary %>

我遇到的问题是使用搜索袋搜索此字段。 salary属性为null,而salary属性salary_cents填充,但这意味着我只能以美分搜索。

对于搜索,我正在使用:

<%= f.search_field :salary_cents_gteq %>
<%= f.search_field :salary_cents_lteq %>

但是要搜索$30 ,我必须输入3000 在发送搜索请求之前,有什么方法可以处理输入的数据并乘以100? 有什么更容易错过的方式吗?

我已经搜索过此文件,但无法找到有关使用搜索袋搜索“金钱”字段的任何信息。

提前致谢。

Ransack的自定义谓词节省了一天!

# config/initializers/ransack.rb
Ransack.configure do |config|

    config.add_predicate 'gteq_euros', 
        arel_predicate: 'gteq',
        formatter: proc { |v| v * 100 },
        validator: proc { |v| v.present? }

    config.add_predicate 'lteq_euros', 
        arel_predicate: 'lteq',
        formatter: proc { |v| v * 100 },
        validator: proc { |v| v.present? }
end

一旦您重新启动Rails应用程序,您就可以按需要对美元/欧元进行洗劫:

<%= f.search_field :salary_cents_gteq_euros %>
<%= f.search_field :salary_cents_lteq_euros %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM