我对如何提供default_url_options感到很困惑。我收到此错误
Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true
我正在使用spreecommerce,它使用设计进行身份验证。在我的开发环境中,在密码重置期间发生此错误。我还没有在生产环境中测试它。 我在我的环境/开发中使用它
config.default_url_options = { host: 'localhost:3000' }
Rails.application.routes.default_url_options[:host] = 'localhost:3000'
当我Rails.application.routes.default_url_options
时,在我的rails控制台中我得到了{:host => Rails.application.config.domain}
。当我Rails.applicaiton.default_url_options
我发现的解决方案都没有奏效。
答案 0 :(得分:0)
TL; DR 在我的情况下,Spree :: Store.current消失了 - 我不得不重新创建它。
我尝试将default_url_options
设置为路由和环境。但没有运气。
所以我进入了spree_auth_devise-3.1.0
宝石源代码:
@confirmation_url = spree.spree_user_confirmation_url(:confirmation_token => token, :host => Spree::Store.current.url)
因此对于主持人来说,它使用的是Spree :: Store。然后我进入控制台并得到我的Spree :: Store.current是空的:
(byebug) Spree::Store.current.url
nil
所以简单地用虚拟数据创建商店就解决了我的问题。
store = Spree::Store.new
store.name = 'test'
store.url = 'http://localhost:3000'
store.code = 'spree'
store.default = true
store.save