ruby-on-rails - Rails activestorage 不适用于 shopify_app gem
问题描述
我正在创建一个 Shopify 应用程序,我想将图像与商店模型一起附加。
但是当我添加与商店模型的活动存储关联时,我无法开始服务。
错误
/home/web/.rvm/gems/ruby-2.6.1/gems/activerecord-6.0.1/lib/active_record/dynamic_matchers.rb:22:in
method_missing': undefined method
has_one_attached' for Shop(调用'Shop.connection'建立连接):Class (NoMethodError)
配置:
导轨:- 6.0.1,红宝石:- 2.6.1,shopify_app:- 11.3.2
这就是我的代码现在的样子
商店.rb
class Shop < ActiveRecord::Base
include ShopifyApp::SessionStorage
has_one_attached :icon, dependent: :destroy
end
配置/初始化程序/shopify_app.rb
ShopifyApp.configure do |config|
config.application_name = "App Name"
config.api_key = ENV['shopify_api_key']
config.secret = ENV['shopify_api_secret']
config.old_secret = "<old_secret>"
config.scope = "write_script_tags,read_script_tags,read_themes"
config.embedded_app = false
config.after_authenticate_job = false
config.api_version = ShopifyVersion.shopify_api_version
config.session_repository = Shop
config.webhooks = [
{topic: 'app/uninstalled', address: 'https://example.com/webhooks/app_uninstalled', format: 'json'},
{topic: 'shop/update', address: 'https://example.com/webhooks/shop_update', format: 'json'},
end
我试过这个:config/initializers/shopify_app.rb
config.session_repository = 'ShopifyApp::InMemorySessionStore'
但是,它仍然无法进行生产。
错误
ShopifyApp::InMemorySessionStore::EnvironmentError(无法在生产环境中使用 InMemorySessionStore。请使用可以存储和检索会话的模型初始化 ShopifyApp):
另外,尝试升级 gem 版本但没有希望,然后使用当前配置创建一个演示,它将起作用。我不明白为什么它不适用于我当前的项目。
谁能给我解释一下?
我真的很感谢你的建议。抱歉英语不好。
提前致谢。
解决方案
在做谷歌并尝试在 Shopify 社区上搜索。我得到了一些建议,根据建议,我尝试仅更新 shopify_app gem 版本和基于新版本的配置。
这个对我有用。
更改13.2.0而不是11.3.2。
推荐阅读
- typescript - TypeScript:缩小对象字段的类型
- javascript - 开玩笑 - 添加“”后快照测试失败
- python - 如何在有条件的情况下对 numpy 3D 数组中的值求和?
- go - 如何使用反射设置嵌套结构字段值
- angular - 反应形式 validators.required 不允许值为 0
- botframework - 尝试将 luis 迁移到 Azure 资源时出现 BadArgument 错误
- java - Spring RestTemplate.exchange 卡住了
- c# - 创建和验证邀请码/令牌
- javascript - webpack - 具有相同结构但不同目录的多个条目和输出?
- .net - 服务器应用程序是否应该检测陈旧/断开连接的套接字?