gpt4 book ai didi

mysql - `device.id` 在生产中返回 `NULL`,但在开发中工作正常

转载 作者:行者123 更新时间:2023-11-30 23:34:51 25 4
gpt4 key购买 nike

我正在使用 apn_on_rails 在 Rails 3.0.9 应用程序中发送推送通知。像这样:

gem 'apn_on_rails', :git => 'https://github.com/natescherer/apn_on_rails.git', :branch => 'rails3'

我有以下注册设备 token 的方法:

# POST /iphones/register_device_token.json
def register_device_token
@iphone = Iphone.find_or_create_by_unique_identifier(params[:unique_identifier])

device = APN::Device.find_or_create_by_token(params[:device_token])

logger.fatal "APN Device ID: #{device.id}"
logger.fatal "APN Device token: #{device.token}"

@iphone.apn_device_id = device.id

respond_to do |format|
if @iphone.save
format.json { render :json => @iphone, :status => :created, :location => @iphone }
else
format.json { render :json => @iphone.errors, :status => :unprocessable_entity }
end
end

end

它在开发中运行良好,使用 sqlite3,但在生产中,使用 mysqldevice.id 返回 NULL。两个数据库都迁移到最新版本。我不知道为什么会这样,非常感谢任何关于如何进行的建议。

最佳答案

问题是发送的 deviceToken 被 <> 包围了. ActiveRecord只是忽略了这些字符并在没有它们的情况下创建了记录,因此设备第一次注册时就可以了。 ActiveRecord时出现问题应该找到设备 token 。 device.id变成了nil ,但是device.token仍然是正确的。

无论如何,当我们将客户端更改为不发送<>一切都很完美。

关于mysql - `device.id` 在生产中返回 `NULL`,但在开发中工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8326666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com