ruby-on-rails - 如何根据 'created_at'字段的月份设置条件

标签 ruby-on-rails ruby

无效的 Controller 代码:

@mailings = Mailing.find(:all, :conditions => ["created_at.month = ?", m])

错误信息:

Mysql::Error: Unknown column 'created_at.month' in 'where clause': SELECT * FROM `mailings` WHERE (created_at.month = 10)

谢谢!

最佳答案

find:conditions 参数被直接内插到生成的 SQL 中。因此,您可以使用 SQL 命令。

如果您使用的是 MySQL,您可以尝试以下操作:

@mailings = Mailing.find(:all, :conditions => ["MONTH(created_at) = ?", m])

或者这个,对于 SQLite:

@mailings = Mailing.find(:all, :conditions => ["strftime('%m', created_at) = ?", m])

关于ruby-on-rails - 如何根据 'created_at'字段的月份设置条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7778984/

相关文章:

ruby - 如何最好地包装 Ruby optparse 代码和输出?

java - 在 Selenium Test Automation 中使用符号定义 Css Selector 或不使用符号之间的性能优势?

php - Apache:支持 [PHP|Python|Ruby] 的虚拟主机

javascript - 在配置中使用 loadNetzkeComponent 的参数

ruby-on-rails - 是否可以通过 SendGrid API 迭代集合?

ruby-on-rails - 回形针-ffmpeg 中的视频内容类型无效

ruby-on-rails - 更改 RACK_ENV 和 RAILS_ENV 有什么作用?

ruby - 使用 || 为变量赋值Ruby 中带有 if 条件的运算符

ruby-on-rails - Rails 在使用 PostgreSQL 时出错

ruby-on-rails - 如何获得强参数以允许嵌套的 fields_for 属性?