Мои routes.rb
before_filter set_locale кроме контроллера
MyApp::Application.routes.draw do
scope '(:locale)' do
#all resources here
end
namespace :blog do
resources :posts, :only => [:index, :show]
end
end
Мои application_controller.rb
class ApplicationController < ActionController::Base
#
#
before_filter :set_locale
private
def default_url_options(options = {})
{locale: I18n.locale}
end
def set_locale
#code for detect locale here
end
#
#
end
Все ресурсы внутри scope '(:locale)'
работает нормально.
Однако я не хочу использовать локаль с namespace :blog
и когда я пытаюсь нажать на блоге ссылки я могу увидеть этот адрес http://localhost:3000/blog/posts?locale=en
Как я могу удалить локаль из namespace :blog...
и blog resource
?. Я хочу, чтобы получить URL-адрес что-то вроде http://localhost:3000/blog/posts
Я хочу, чтобы удалить ?locale=en
Спасибо!
В вашем 'ApplicationController' есть ли у вас метод, который выглядит примерно так: def url_options; {locale: I18n.locale} .merge (супер); end', который автоматически включал бы «locale» в строку url? –
Это метод, который у меня есть в ApplicationController: 'def default_url_options (options = {}) {locale: I18n.locale} end' Я редактировал вопрос, если проблема в этом методе, я хочу отключить этот метод в моем 'PostsControllers'. Спасибо! – hyperrjas