Nic*_*lim 4 sql ruby-on-rails date
我试图在索引视图中显示当月和当年的销售交易。
这是我在销售控制器中放入的内容:
def index
@sales = show_sales_for_current_month(@sales)
Run Code Online (Sandbox Code Playgroud)
在 SalesHelper 中使用此方法
def show_sales_for_current_month(sales)
sales = Sale.find(:all,
:conditions => ["MONTH(date) = ? AND YEAR(date) =?",
Date.today.month, Date.today.year])
end
Run Code Online (Sandbox Code Playgroud)
其中 date 是日期数据类型。
但我收到以下控制器错误:
SQLite3::SQLException: no such function: MONTH: SELECT "sales".* FROM "sales" WHERE (MONTH(date) = 4 AND YEAR(date) =2011)
Run Code Online (Sandbox Code Playgroud)
我环顾四周的帖子,似乎这是正确的功能,那么我做错了什么?谢谢!
嘿,我有一个名为by_star 的gem ,它可以帮助您解决此类查询。在您的情况下,您只需要在控制器中执行此操作:
@sales = Sale.by_month
Run Code Online (Sandbox Code Playgroud)
by_star 负责计算出现在的月份和年份,以及混乱的 SQL。