加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails中静态页面的语言特定路由3

发布时间:2020-12-17 02:07:53 所属栏目:百科 来源:网络整理
导读:使用Rails 3.2.8与以下宝石的应用程序 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 v
使用Rails 3.2.8与以下宝石的应用程序

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

如何根据语言为staticpages实现上述格式的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"

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读