【问题标题】:meta_search with meta_where gem使用 meta_where gem 的 meta_search
【发布时间】:2013-01-12 02:05:12
【问题描述】:

我正在使用 meta_search 和 meta_where gem。在我的控制器文件中:

@search = Project.where('end <= ?', Time.zone.now) 
@search = @search.search(params[:search])

当我运行此代码时,我在浏览器中出现这样的错误

PG::Error: ERROR:  syntax error at or near "end"

【问题讨论】:

    标签: ruby-on-rails meta-search meta-where


    【解决方案1】:

    您的项目可能没有“结束”列,这可能意味着您进行了迁移但忘记使用 rake db:migrate 运行它,或者需要进行迁移以添加该列。如果列名是 end_date,你可以这样做:

    rails g migration add_end_date_to_projects end_date:date

    然后运行迁移。

    编辑:'end' 是 PostgreSQL 中的保留字,所以我认为该列需要重命名。

    见:http://www.postgresql.org/docs/8.3/static/sql-keywords-appendix.html

    【讨论】:

    • 啊,'end' 是 PostgreSQL 中的保留字,所以我认为您需要将该列重命名为其他名称。我会推荐 'end_date' 或 'end_time' ,因为这样更方便。另见stackoverflow.com/questions/5570783/…中的第一个答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多