11
使用Rails 4.2.1和Active Admin 1.0.0.pre2在ActiveAdmin模型中通过方法进行过滤使用参数
我有一个Apartment模型,它有很多Occupancies。我希望管理员能够查看索引中的公寓是否与作为params传入的日期重叠。我在公寓有一个方法
def available_during(start_date, end_date)
return !self.occupancies.any? { |occ| occ.date_range_overlap(Date.parse(start_date), Date.parse(end_date)) }
end
如果公寓有两个与两个给定日期重叠的占用情况,则返回true。关于占用率的方法date_range_overlap
是非常明显的。我似乎无法弄清楚如何让ActiveAdmin的DSL通过该方法进行过滤,甚至无法输入随机参数。
我能够在索引中放置一个显示available_during方法的布尔返回值的列。
if params[:from] && params[:until]
column "available?" do |apt|
apt.available_during(params[:from], params[:until])
end
end
但我似乎只能通过手动输入from和直到params在url中得到这个工作。
我该如何放置一个任意的搜索表单来将用户发送给正确的参数?或者更好的是,在使用该方法的侧边栏中制作一个过滤器?