Closed fukasawamoe closed 9 months ago
猫ちゃんのDB化を進めている中で、画像の変更ができるようにactivestrageとcloudinaryを使用して実装を行っています。 現時点では、ローカル環境ではcloudinaryからデータを取ってきてhome/index画面でAIのアバターとして変更できるのですが、
本番環境だと会員登録→ログインのタイミングでエラーになってしまいます
一応ログインはできており、ログイン後の画面が以下になります
おそらく、画像の生成がうまくいっていないと思うのですが、(ユーザーモデル作成時にキャラクターモデルも一緒に作成するようにしています)
ログを確認すると、以下のようなエラーが出ておりchatGPTによると
これは、Cloudinary の設定に問題があることを示しています。特に cloud_name の値が期待されている値ではない、あるいはCloudinaryアカウント設定の問題があることを意味します。 とのことでした。 2023-12-09T15:49:47.487199+00:00 app[web.1]: [c7817d22-5c8b-4707-8289-00251dd76cbc] ActiveStorage::IntegrityError (Invalid cloud_name yoriyoi):
これは、Cloudinary の設定に問題があることを示しています。特に cloud_name の値が期待されている値ではない、あるいはCloudinaryアカウント設定の問題があることを意味します。 とのことでした。
2023-12-09T15:49:47.487199+00:00 app[web.1]: [c7817d22-5c8b-4707-8289-00251dd76cbc] ActiveStorage::IntegrityError (Invalid cloud_name yoriyoi):
その後APIキーなども確認したのですが特に原因がわからず...
関係のありそうなコードは以下の通りです わからなすぎて関係ないところにまでAPIの記述してると思います...。
# user.rb require 'open-uri' class User < ApplicationRecord has_one :character, dependent: :destroy # ユーザー作成後に呼び出されるコールバック after_create :assign_default_character private # デフォルトキャラクターの属性を持つキャラクターを作成 def assign_default_character # Cloudinaryにアップロード済みのデフォルト画像のURL default_image_url = "https://res.cloudinary.com/dkxx3dybs/image/upload/v1702127528/cat_notification_kwprga.png" self.create_character( name: 'ねこちゃん', personality: '友達思いのやさしい', communication_style: 'フレンドリー', relationship: '相棒', additional: 'いつもそばにいる' ) if self.character.present? # Cloudinaryの画像URLからアタッチ self.character.image.attach(io: URI.parse(default_image_url).open, filename: 'cat_notification.png') # Character インスタンスを保存 self.character.save! end end end
# config/environments/production.rb Rails.application.configure do config.active_storage.service = :cloudinary end
# config/initializers/cloudinary.rb Cloudinary.config do |config| config.cloud_name = ENV['CLOUDINARY_CLOUD_NAME'] config.api_key = ENV['CLOUDINARY_API_KEY'] config.api_secret = ENV['CLOUDINARY_API_SECRET'] config.secure = true config.cdn_subdomain = true end
# config/cloudinary.yml development: cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %> api_key: <%= ENV["CLOUDINARY_API_KEY"] %> api_secret: <%= ENV["CLOUDINARY_API_SECRET"] %> enhance_image_tag: true static_image_support: false production: cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %> api_key: <%= ENV["CLOUDINARY_API_KEY"] %> api_secret: <%= ENV["CLOUDINARY_API_SECRET"] %> enhance_image_tag: true static_image_support: true test: cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %> api_key: <%= ENV["CLOUDINARY_API_KEY"] %> api_secret: <%= ENV["CLOUDINARY_API_SECRET"] %> enhance_image_tag: true static_image_support: false
# config/storage.yml test: service: Disk root: <%= Rails.root.join("tmp/storage") %> local: service: Disk root: <%= Rails.root.join("storage") %> cloudinary: service: Cloudinary cloud_name: <%= ENV['CLOUDINARY_CLOUD_NAME'] %> api_key: <%= ENV['CLOUDINARY_API_KEY'] %> api_secret: <%= ENV['CLOUDINARY_API_SECRET'] %>
以上、ご助言いただければ幸いです。
CLOUDINARY_CLOUD_NAMEはcloudinaryのサイトの別のところに書いてありました....herokuのキーの修正を行ったところ直りました
猫ちゃんのDB化を進めている中で、画像の変更ができるようにactivestrageとcloudinaryを使用して実装を行っています。 現時点では、ローカル環境ではcloudinaryからデータを取ってきてhome/index画面でAIのアバターとして変更できるのですが、![Image from Gyazo](https://i.gyazo.com/e84bc529274089d15acbb15c6e3c045e.png)
本番環境だと会員登録→ログインのタイミングでエラーになってしまいます![Image from Gyazo](https://i.gyazo.com/e57b300830adc1a1f49927b241b08f78.gif)
一応ログインはできており、ログイン後の画面が以下になります![Image from Gyazo](https://i.gyazo.com/f0c745750ea4d741788bb3be65027c1d.png)
おそらく、画像の生成がうまくいっていないと思うのですが、(ユーザーモデル作成時にキャラクターモデルも一緒に作成するようにしています)
ログを確認すると、以下のようなエラーが出ておりchatGPTによると
その後APIキーなども確認したのですが特に原因がわからず...![Image from Gyazo](https://i.gyazo.com/f2083cdfe592b0233fd398545cb0e2e5.png)
関係のありそうなコードは以下の通りです わからなすぎて関係ないところにまでAPIの記述してると思います...。
以上、ご助言いただければ幸いです。