我在我的 Rails 应用程序中使用 Ransack gem,效果很好。我当前的问题是验证。这本质上是一个两部分的问题。
如何根据条件向值字段添加验证。IE 如果 Year 是选定属性,如何将值文本框更改为带有年份列表的选择框?
还有自定义的东西,例如,如果条件设置为“国会区”,我需要能够检查该值是否只有 3 个字符长,前两个是州缩写。
我在我的 Rails 应用程序中使用 Ransack gem,效果很好。我当前的问题是验证。这本质上是一个两部分的问题。
如何根据条件向值字段添加验证。IE 如果 Year 是选定属性,如何将值文本框更改为带有年份列表的选择框?
还有自定义的东西,例如,如果条件设置为“国会区”,我需要能够检查该值是否只有 3 个字符长,前两个是州缩写。
似乎有一个请求请求将这个有价值的特性添加到 gem 中,我们希望它会发生。以下是有关更改的描述(引自GitHub 讨论,日期为 15 天前):
只是想确认这对我们仍然是一个有用的功能,但另一种方法是在 lib/ransack/constants.rb 中明确指定一个好的默认顺序。例如,这是我们决定的顺序:
:cont, :not_cont, :blank, :present, :start, :not_start, :end, :not_end,
:true, :false, :eq, :not_eq, :lt, :gt, :lteq, :gteq, :null, :not_null,
:in, :not_in, :matches, :does_not_match
我们根据列类型(字符串、整数、日期等)过滤谓词,因此这种排序为每种类型设置了良好的默认值。
编辑:这是使用 Ransack 创建构面和过滤器 的有趣解决方案。