railscastsに見られるように国際化を実装しようとしていますが、routesファイルをスコープするたびにエラーが発生します
No route matches [GET] "/"
またはエラー
missing :controller
config/routes.rb:6:in `block (2 levels) in <top (required)>'
config/routes.rb:5:in `block in <top (required)>'
config/routes.rb:1:in `<top (required)>'
これが私のroutes.rbファイルです
Jensenlocksmithing::Application.routes.draw do
get "log_out" => "sessions#destroy", as: "log_out"
get "log_in" => "sessions#new", as: "log_in"
scope ":locale" do
get "site/home"
get "site/about_us"
get "site/faq"
get "site/discounts"
get "site/services"
get "site/contact_us"
get "site/admin"
get "site/posts"
root :to => 'site#home'
end
#match '*path', to: redirect("/#{I18n.default_locale}/%{path}")
#match '', to: redirect("/#{I18n.default_locale}")
match "/savesort" => 'site#savesort'
resources :users
resources :abouts
resources :sessions
resources :coupons
resources :monthly_posts
resources :reviews
resources :categories do
collection { post :sort }
resources :children, :controller => :categories, :only => [:index, :new, :create, :new_subcategory]
end
resources :products do
member do
put :move_up
put :move_down
end
end
resources :faqs do
collection { post :sort }
end
end
では、スコープ ":locale"を追加するたびに、エンドラインでこれらのエラーが発生するのはなぜですか?それがなくてもすべて正常に動作します。これ以上コードを表示する必要がある場合はお知らせください。みんなありがとう
編集
私のアプリケーションコントローラーには、次のものがあります。
private
def default_url_options(options = {})
{locale: I18n.locale}
end
これは、ルートでハッシュを渡すのと同じことをしますか?
編集2
この要点にあるように、ルートを次のように変更しました。 https://gist.github.com/2322844
では、なぜ:id部分がgetルートに追加されるのでしょうか。このように
about_us_site GET /sites/:id/about_us(.:format)
こんな感じじゃないですか
about_us_site GET /sites/about_us(.:format)
詳細については、routes.rbファイル全体とそれが生成するルートも追加しました。
https://gist.github.com/2322861
興味のある人への回答:
私が変更され
get "site/home"
get "site/about_us"
get "site/faq"
get "site/discounts"
get "site/services"
get "site/contact_us"
get "site/admin"
get "site/posts"
root :to => 'site#home'
に
resources :sites, except: [:new, :edit, :index, :show, :update, :destroy, :create] do
collection do
get :home
get :about_us
get :faq
get :discounts
get :services
get :contact_us
get :admin
get :posts
end
終わり