所以我试图使用rpush来使用这个gem来发送我的移动应用的推送通知:https://github.com/rpush/rpush。我正在使用sinatra框架。但即使我写了 - >我仍然会收到此错误。要求' rpush'在我的文件的顶部。有人在红宝石中有经验可以帮助我吗?我是红宝石的新手所以请耐心等待。这是我的代码
require 'rpush'
Module Notifier
def rpush_client
app = Rpush::Gcm::App.new
app.name = "App-Name"
app.auth_key = "XXXXXXXXXXXXXXX"
app.connections = 1
app.save!
end
def notify(user_id,alert)
rpush_client
session = db_find_one('dbname.sessions',{user_id: user_id})
if session.present?
device = session['devices'].first
token = device['device_token']
n = Rpush::Gcm::Notification.new
n.app = Rpush::Gcm::App.find_by_name("App-Name")
n.registration_ids = ["token", token]
n.data = { message: alert }
n.save!
Rpush.push
end
end
end
我知道这是一个愚蠢的问题,但厌倦了在这里寻找它。
答案 0 :(得分:0)
您是否正在使用Sinatra的捆绑器?如果是这样,您不需要明确要求Rpush。见这里:http://bundler.io/sinatra.html
答案 1 :(得分:0)
在我的情况下,我刚刚在rpush上安装了
bundle add rpush
并遇到相同的错误。
正如README.md中明确提到的那样,在将rpush添加到Gemfile之后,您必须运行以下命令:
$ bundle
$ bundle exec rpush init
这将生成config/initializers/rpush.rb
和(很多)迁移文件。
此后,您可能要运行迁移。
我建议使用rpush-redis。
您不需要使用它进行额外的迁移。您可以放心地删除垃圾迁移文件。
config.redis_options
可能类似于以下内容:
Rpush.configure do |config|
# Supported clients are :active_record and :redis
config.client = :redis
# Options passed to Redis.new
config.redis_options = {
url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0'),
password: ENV.fetch('REDIS_PASSWORD', '')
}
end