我使用omniauth登錄用戶,然後在數據庫中存儲一些屬性。下面是我如何刪除omniauth哈希的空白屬性,選擇一些屬性Json數據類型在PG heroku上。在當地工作。 PG :: InvalidTextRepresentation
def update_blank_attributes(attributes,force_update_attr)
attributes.each { |k,v| puts attributes.delete(k) unless (force_update_attr.include?(k)||read_attribute(k).blank?) }
update_attributes!(attributes)
end
我的用戶模型數據類,這是一個JSON數據類型:
class AddDataToUsers < ActiveRecord::Migration
def change
add_column :users, :data, :json
end
end
這個本地工作細,甚至刪除並重新創建數據庫後。
但是我獲得以下在Heroku上的錯誤:
ActiveRecord::StatementInvalid (PG::InvalidTextRepresentation: ERROR: invalid input syntax for type json
DETAIL: Token "=" is invalid.
CONTEXT: JSON data, line 1: "linkedin_data"=...
: INSERT INTO "users" ("created_at", "data", "email", "name", "provider", "updated_at") VALUES ($1, $2, $3, $4, $5, $6) RETURNING "id"):
app/models/user.rb:68:in `update_blank_attributes'
app/controllers/authentications_controller.rb:38:in `create'
PG::InvalidTextRepresentation: ERROR: invalid input syntax for type json
CONTEXT: JSON data, line 1: "linkedin_data"=...
DETAIL: Token "=" is invalid.
local PG version:9.3.3
Heroku PG version: 9.3.3
我越來越/因爲它的確切相同的呼叫從LinkedIn地方在Heroku上保存相同的數據,以及對LinkedIn進行身份驗證
本地PG版本:9.3.0 Heroku的PG版本:9.3.3 – codeObserver
還更新了問題 – codeObserver
喬恩喜,我更新了本地數據庫,並不能在本地重現問題。還有其他想法嗎? – codeObserver