「kontakt」というドイツ語のページがありますが、アクセスは /contact です。私は翻訳を考えながらこのバグを修正し始め、次の変更を行いました。
(コントローラ) 照会-controller.rb: 変更
def find_page
@page = ::Refinery::Page.find_by_link_url("/kontakt")
end
i18n.rb:
config.enabled = true
config.default_locale = :de
config.current_locale = :de
config.default_frontend_locale = :de
config.frontend_locales = [:en, :de]
config.locales = { :en => 'English', :de => 'Deutsch' }
(モデル)setting.rbで変更しました:
def confirmation_subject(locale="de")...
「en」の代わりに。
製油所のリダイレクトを /kontakt に変更しました。
ブラウザに「ページが正しくリダイレクトされていません」というエラーが表示されます。
コンソール:
127.0.0.1 の GET "/kontakt" を 2013-02-19 17:07:27 +0100 で開始 Refinery::PagesController#show as HTML パラメータによる処理: {"path"=>"kontakt", "locale"=> :de} Refinery::Role Load (0.2ms) SELECT "refinery_roles".* FROM "refinery_roles" WHERE "refinery_roles"."title" = 'Refinery' LIMIT 1 Refinery::User Load (0.2ms) SELECT "refinery_users". * FROM "refinery_users" INNER JOIN "refinery_roles_users" ON "refinery_users"."id" = "refinery_roles_users"."user_id" WHERE "refinery_roles_users"."role_id" = 1 Refinery::Page Load (0.4ms) SELECT "refinery_pages". * FROM "refinery_pages" INNER JOIN "refinery_page_translations"ON "refinery_page_translations"."refinery_page_id" = "refinery_pages"."id" WHERE "refinery_page_translations"."locale" IN ('en', 'de') AND "refinery_page_translations"."slug" = 'kontakt' AND "refinery_pages" ."parent_id" IS NULL LIMIT 1 ../kontakt にリダイレクト Refinery::User Load (0.1ms) SELECT "refinery_users".* FROM "refinery_users" WHERE "refinery_users"."id" = 3 LIMIT 1 Refinery::Role Load (0.1ms) SELECT "refinery_roles".* FROM "refinery_roles" INNER JOIN "refinery_roles_users" ON "refinery_roles"."id" = "refinery_roles_users"."role_id" WHERE "refinery_roles_users"."user_id"= 3 Completed 302 Found in 8ms (ActiveRecord: 1.1ms) cache: [GET /kontakt] miss cache: [GET /kontakt] miss
development.log のログ:
127.0.0.1 の GET "/kontakt" を 2013-02-19 17:07:27 +0100 で開始 Refinery::PagesController#show as HTML パラメータによる処理: {"path"=>"kontakt", "locale"=> :de} [1m[35mRefinery::Role Load (0.1ms)[0m SELECT "refinery_roles".* FROM "refinery_roles" WHERE "refinery_roles"."title" = 'Refinery' LIMIT 1
[1m[36mRefinery::User Load (0.2ms)[0m [1mSELECT "refinery_users".* FROM "refinery_users" INNER JOIN "refinery_roles_users" ON "refinery_users"."id" = "refinery_roles_users"."user_id" WHERE "refinery_roles_users" ."role_id" = 1[0m [1m[35mRefinery::Page Load (0.2ms)[0m SELECT "refinery_pages".* FROM "refinery_pages" INNER JOIN "refinery_page_translations" ON "refinery_page_translations"."refinery_page_id" = "refinery_pages". "id" WHERE "refinery_page_translations"."locale" IN ('en', 'de') AND "refinery_page_translations"."slug" = 'kontakt' AND "refinery_pages"."parent_id"IS NULL LIMIT 1 //../kontakt [1m[36mRefinery::User Load (0.1ms)[0m [1mSELECT "refinery_users".* FROM "refinery_users" WHERE "refinery_users"."id" = 3 LIMIT 1[ 0m [1m[35mRefinery::Role Load (0.1ms)[0m SELECT "refinery_roles".* FROM "refinery_roles" INNER JOIN "refinery_roles_users" ON "refinery_roles"."id" = "refinery_roles_users"."role_id" WHERE "refinery_roles_users" ."user_id" = 3 Completed 302 Found in 6ms (ActiveRecord: 0.8ms)1ms)[0m SELECT "refinery_roles".* FROM "refinery_roles" INNER JOIN "refinery_roles_users" ON "refinery_roles"."id" = "refinery_roles_users"."role_id" WHERE "refinery_roles_users"."user_id" = 3 完了 302 6ms で発見(アクティブレコード: 0.8ms)1ms)[0m SELECT "refinery_roles".* FROM "refinery_roles" INNER JOIN "refinery_roles_users" ON "refinery_roles"."id" = "refinery_roles_users"."role_id" WHERE "refinery_roles_users"."user_id" = 3 完了 302 6ms で発見(アクティブレコード: 0.8ms)
ファイルに翻訳があります: en.yml と de.yml
http://refinerycms.com/edge-guides/translate-refineryの情報を見ました が、解決策が見つかりませんでした。
/contact で入力しようとすると、すべての変更があっても問題なく動作します。
また、ページのフォーミュラーでは、検証は英語で値を読み取っています。