Heroku上的Redis + Soulmate - 在多个模型上实现自动完成功能

时间:2013-06-17 16:34:46

标签: ruby-on-rails heroku autocomplete redis

这是我第一次使用redis,我正在使用soulmate和redis在搜索表单上实现自动填充功能。

我在本地计算机上安装了redis,我必须使用redis-server来确保redis正常工作。

为了使它能够在heroku上工作,我使用了redis_to_go并按照链接上的说明进行操作。

然而,似乎redis服务器没有开始,因为我不断收到错误Error connecting to Redis on 127.0.0.1:6379 (ECONNREFUSED)

我在初始化程序中创建了一个redis.rb文件,其中包含以下代码: -

ENV["REDISTOGO_URL"] ||= "redis://redistogo:972612d8048aad8@tarpon.redistogo.com:9436/"

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)

我期待这段代码能够为我启动redis服务器。

我还需要做些什么才能让redis在heroku上运行?

3 个答案:

答案 0 :(得分:2)

我在使用Redis Cloud支持后来回解决这个问题。

我需要创建一个文件 - config / initializers / soulmate.rb:

Soulmate.redis = ENV["REDISCLOUD_URL"]

希望能帮到别人!

答案 1 :(得分:0)

在我的头撞了两天之后,我认为使用rails实现自动完成是一个糟糕的选择。

我能够在我的开发机器上实现它,但redis + heroku对我来说是一场噩梦,而redis_to_go团队的支持非常糟糕。

我使用typeahead.js实现了自动填充搜索。

答案 2 :(得分:0)

虽然你继续前进,回答原来的问题:我在Soulmate问题列表中找到了关于此问题的讨论:https://github.com/seatgeek/soulmate/pull/20(额外信息:在提出这个问题之前,修复程序很好地合并到了gem中)。

因此,要解决此问题:将'ENV [“REDIS_URL”] = ENV [“REDISTOGO_URL”]'添加到redis.rb。 我自己的redis.rb现在看起来像这样:

uri = URI.parse(ENV["REDISTOGO_URL"])
REDIS = Redis.new(:host => uri.host, :port => uri.port, :password => uri.password)
ENV["REDIS_URL"] = ENV["REDISTOGO_URL"]