我有一个带有:birthday属性的Model,我希望按表单中指定的月份过滤掉这些日期(ActiveAdmin的DSL:select)。
这是简单范围的示例,仅提取生日日期的月份。也许可以提供帮助:
scope :birthday_month, where('extract(month from birthday) = ?', Date.today.month)
答案 0 :(得分:6)
这是一个解决方案:
在我的Active Admin资源(app / admin / employees.rb)上,我放了:
filter :month, :as => :select, :collection => (1..12)
在我的模型(app / models / employee.rb)上:
scope :month_eq, lambda{ |month| where("strftime('%m', birthday) + 0 = ?", month.to_i) }
search_methods :month_eq
这种方法定义'_eq'范围方法(MetaSearch),并通过search_methods :month_eq
(MetaSearch)将其转换为可用。
注意:强>
如果你没有使用sqlite,也许你会希望改用where('extract(month from birthday) = ?', month.to_i)
。
答案 1 :(得分:2)
最新版Active Admin的解决方案:
input_n = int(input("Choisissez un nombre : "))
input_list = list()
for i in range(0,input_n+1):
input_list.append(i)
if input_n <= 10:
print ("+".join(str(i) for i in input_list) + " = ", sum(input_list))
print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))
elif input_n > 10:
print("+".join(str(i) for i in range(5)) + " + ... +" + "+".join(str(i) for i in range(input_n-5,input_n+1), sum(input_list)))
print (str(input_n)+'*'+'('+str(input_n)+'+1)/2 = ', int(input_n*(input_n+1)/2))