相关疑难解决方法(0)

为已安装的 Rails 引擎设置 default_url_options

使用 Rails 3.2.13 和 spree 2.0.2
我遇到了与动态范围下的 Rails 可安装引擎类似的问题

我的路线:

scope ':locale', locale: /en|jp/ do
  mount Spree::Core::Engine, at: '/store'
  root to: 'home#index'
end
Run Code Online (Sandbox Code Playgroud)

我想输出链接以更改区域设置:

<%= link_to 'JP', url_for(locale: :jp) %>
Run Code Online (Sandbox Code Playgroud)

但这输出:

<a href="/en/store/?locale=jp">JP</a>
Run Code Online (Sandbox Code Playgroud)

而不是预期的:

<a href="/jp/store">JP</a>
Run Code Online (Sandbox Code Playgroud)

- 编辑 -

当我输入ApplicationController

def default_url_options(options={})
  { locale: I18n.locale }
end
Run Code Online (Sandbox Code Playgroud)

它在存储中设置区域设置参数两次,而不是合并它们:

http://localhost:3000/en/store/products/bag?locale=en
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails spree rails-engines

5
推荐指数
1
解决办法
2158
查看次数

标签 统计

rails-engines ×1

ruby-on-rails ×1

spree ×1