Rails 3 中静态页面的语言特定路由
Language Specific Routes For Static Pages in Rails 3
应用程序使用 Rails 3.2.8 和以下 gems
gem 'friendly_id', '~> 4.0'
gem 'globalize3',"0.3.0"
gem 'route_translator'
在控制器中/app/controllers/home_controller.rb
def static_pages
# page url is unique and used for finding static pages.
# Possible values for params[:page] are about_us, contact_us,
# privacy, terms_and_conditions
@static_page = StaticPage.find_by_page_url(params[:page])
end
在 routes.rb 文件中
match "/page/:page" => "home#static_pages", :as => :static_page
localized do
match "label_vacancies/:job_offer"=>"job_seekers#job_offer"
end
正在查看文件
<div class="bot-cont1">
<ul>
<% @static_pages.each do |sp| %>
<% if sp.page_url %>
<li><%=link_to sp.page_name , static_page_path(:page=>sp.page_url) %></li>
<%end%>
<%end%>
以下是静态页面 URL 的当前格式
https://www.xxxxxx.com/page/about_us?page=about_us
https://www.xxxxxx.com/page/contact_us?page=contact_us
https://www.xxxxxx.com/page/privacy?page=privacy
但需要根据语言使用以下格式的 URL
Aboutus:
https://www.xxxxxx.com/en/about-us
https://www.xxxxxx.com/de/uber-uns
https://www.xxxxxx.com/es/sobre-nosotros
Contact:
https://www.xxxxxx.com/us/contact-us
https://www.xxxxxx.com/de/kontaktiere-uns
https://www.xxxxxx.com/es/contacto
如何根据语言实现静态页面的上述URL格式。提前致谢。
在您的路线文件中:
AppName::Application.routes.draw do
get "/#{I18n.t("contact")}", :to => "pages#contact", :as => "contact"
get "/#{I18n.t("about")}", :to => "pages#about", :as => "about"
end
在您的语言环境文件中:
en:
about: "about-in-english"
contact: "contact-in-english"
es:
about: "about-in-spanish"
contact: "contact-in-spanish"
应用程序使用 Rails 3.2.8 和以下 gems
gem 'friendly_id', '~> 4.0'
gem 'globalize3',"0.3.0"
gem 'route_translator'
在控制器中/app/controllers/home_controller.rb
def static_pages
# page url is unique and used for finding static pages.
# Possible values for params[:page] are about_us, contact_us,
# privacy, terms_and_conditions
@static_page = StaticPage.find_by_page_url(params[:page])
end
在 routes.rb 文件中
match "/page/:page" => "home#static_pages", :as => :static_page
localized do
match "label_vacancies/:job_offer"=>"job_seekers#job_offer"
end
正在查看文件
<div class="bot-cont1">
<ul>
<% @static_pages.each do |sp| %>
<% if sp.page_url %>
<li><%=link_to sp.page_name , static_page_path(:page=>sp.page_url) %></li>
<%end%>
<%end%>
以下是静态页面 URL 的当前格式
https://www.xxxxxx.com/page/about_us?page=about_us
https://www.xxxxxx.com/page/contact_us?page=contact_us
https://www.xxxxxx.com/page/privacy?page=privacy
但需要根据语言使用以下格式的 URL
Aboutus:
https://www.xxxxxx.com/en/about-us
https://www.xxxxxx.com/de/uber-uns
https://www.xxxxxx.com/es/sobre-nosotros
Contact:
https://www.xxxxxx.com/us/contact-us
https://www.xxxxxx.com/de/kontaktiere-uns
https://www.xxxxxx.com/es/contacto
如何根据语言实现静态页面的上述URL格式。提前致谢。
在您的路线文件中:
AppName::Application.routes.draw do
get "/#{I18n.t("contact")}", :to => "pages#contact", :as => "contact"
get "/#{I18n.t("about")}", :to => "pages#about", :as => "about"
end
在您的语言环境文件中:
en:
about: "about-in-english"
contact: "contact-in-english"
es:
about: "about-in-spanish"
contact: "contact-in-spanish"