私はRyan Bates railscasts I18n Internationalizationをフォローしており、問題/質問にぶつかっています。Rails 3アプリに英語/スペイン語を追加するためにroutes.rbを診断する必要があります
私は、私のリンクに言語を設定するには、このような何かしようとしています:私は私のルートファイルでこれを定める午前スペイン語
の英語
ため
http://localhost:3000/en/site/servicesと
http://localhost:3000/es/site/servicesをここ:
routes.rb
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"
get "categories/new_subcategory"
get "categories/edit_subcategory"
end
と私はすくいルートを実行したり、ナビゲートしてみたときに、私は、自分のアプリケーションのコントローラ
before_filter :set_locale
private
def set_locale
I18n.locale = params[:locale] if params[:locale].present?
end
def default_url_options(options = {})
{locale: I18n.locale}
end
そして、私の意見/レイアウト/ application.html.erb
今<%= link_to_unless_current "English", locale: "en" %> |
<%= link_to_unless_current "Spanish", locale: "es" %>
中に持っています私が得るURLに
C:\www\project>rake routes
rake aborted!
missing :controller
私はかなり新しいルートです、誰かが私を助けることができますか? /問題を見て/説明する? ありがとうございます。
あなたは正しいですが、私は他のルートを持っており、実際にはそれを絞り込んでいます。私は安らかなルーティングをもっと理解する必要があります、私はその本をチェックアウトします。また、ルーティングに関するRuby on Railsのガイドを再度読む予定です。より受け入れ可能なバージョン: リソースサイト:そしてメンバールートの束を追加しますか?私は自分のサイトのコントローラにはCRUDは必要なく、静的なアクション(家庭、製品など)のみを必要とします。それがベストプラクティスですか? – ruevaughn
私は前に "サイト"コントローラのパスを下ってしまい、動作させることができます。私はこれらの "静的な"ページを更新可能にしたかったので、Rails(静的なページなどの世話をするためにSinatraアプリケーションをマウントするのではなく)で立ち往生し、サイト全体でI18nの問題に対処しなければならないことを知っています。最終的に私は、 "about"、 "contact"、 "home"タイプのものを持つ組織を表すコントローラを、データベース内に単独で格納された単一の組織のプロパティとして持っていました。他のすべてはRails CRUDでした。それはうまくいったが、私はいつもよりよい方法があるのか疑問に思っていた。 – mikewilliamson
まあまあ私の状況ですが、私はまた、静的なページを更新可能にしたいと思います。しかし、フロントエンドで言語を切り替えるだけで済みます。バックエンドではなく、フロントエンドの「静的な」ページの周りにスコープをラップしようとしていました。この道を歩いていると、この種のサイトには構造や他の何かを考えることができるでしょうか? – ruevaughn