繁体   English   中英

Rails App搜索栏可在本地使用,但不能在Heroku上使用

[英]Rails App search bar works locally but not on Heroku

编辑:不重复的“为什么此查询在Heroku上不起作用?” 搜索不涉及字符串,仅涉及日期查询。

搜索时,Rails App在本地不会引发任何错误,但是在产品上进行搜索时,每次都会引发错误。 过去工作正常。 我正在针对SQLite3进行开发,最近还没有更改与搜索栏直接交互的任何内容。 我回滚到一些相当古老的分支机构以确保; 它仍然被打破。 我已经在gemfile中指定的1.3.9上运行了SQLite3。

这是我的模型的搜索定义:

def self.search(search)
   where("startDay LIKE ?", "%#{search}%")
end

风景:

<%= form_tag(weeks_path, :method => "get", id: "search-form") do %>
    <h4>Search for weeks by start date </h4>
    <%= text_field_tag :search, params[:search], placeholder: "Search Weeks", value: Date.today.beginning_of_week(:sunday) - 7 %>
    <%= submit_tag "Search", :name => nil %>
<% end %>

我应该包括的其他内容可能有助于解决问题?

最主要的不是搜索字符串或日期。 问题在于您的本地数据库与生产数据库不同。 PostgreSQL不能直接在datetime字段上应用LIKE操作,应该在使用字符串操作之前将其明确转换为字符串。 在开发环境中无需切换到生产类型数据库,将来您将继续获得类似的错误。

在postgresql中,此查询应编写如下:

 where("startDay::text LIKE ?", "%#{search}%")

对于任何将来看这个的人。 我改用了postgreSQL,但是由于我的应用程序完成了99%,所以我决定不放弃我的文件并更改所有语法,而是放弃Heroku,继续使用sqlite3,而是托管我自己的生产服务器。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM