Ruby on rails 3 我的模型查询有问题吗

Ruby on rails 3 我的模型查询有问题吗,ruby-on-rails-3,Ruby On Rails 3,请在我的模型中输入以下代码 Letter.count(:id, :conditions => ["language_id = #{lang} AND :created_at => '#{start_date.to_date.strftime('%Y-%m-%d')}'..'#{end_date.to_date.strftime('%Y-%m-%d')}' " ]) 我正在尝试获取给定日期之间不同字母的字母数.id。 这是一个错误 请那些人知道我做错了什么…谢谢 SQLite3::S

请在我的模型中输入以下代码

Letter.count(:id, :conditions => ["language_id = #{lang} AND :created_at => '#{start_date.to_date.strftime('%Y-%m-%d')}'..'#{end_date.to_date.strftime('%Y-%m-%d')}' " ])
我正在尝试获取给定日期之间不同字母的字母数.id。 这是一个错误

请那些人知道我做错了什么…谢谢

SQLite3::SQLException: near ">": syntax error: SELECT COUNT("letters"."id") FROM "letters" WHERE ("letters".language_id = 1) AND (language_id = 1 AND :created_at => '2011-05-01'..'2011-05-08

这可以简化得多。有两点:

  • 在字符串中不使用
    :created_at=>…
    格式
  • 您需要在之间使用
    ?和?
    用于日期
  • 你不需要手动
    strftime
    你的日期,Rails会自动处理
  • 在Rails 3中,首选的方法是使用
    where(…)
    而不是
    :conditions
    哈希来计算
    计数(…)
  • 您可能也应该对
    语言id
    字段使用Rails的安全插值

  • Letter.where(“language\u id=”和created\u at?和?),lang,start\u date.to\u date,end\u date.to\u date)。count

    无法查看与Highcharts相关的任何内容,因此删除了此标记