双语Rails站点的第二个应用程序布局

时间:2017-05-06 11:07:09

标签: ruby-on-rails ruby

我有一个西班牙语网站,我需要将其精确复制成英文。但是,导航栏标签来自应用程序控制器,该控制器用于站点上的每个页面。

是否可以制作仅适用于西班牙语页面的应用程序布局,以及英语页面的第二个应用程序布局?我还需要一个ENG和SPA的链接,以便在每个版本之间进行更改。

总结一下:

  1. 我可以制作第二个应用程序布局吗?
  2. 如何将新的应用程序布局链接到视图?

1 个答案:

答案 0 :(得分:1)

您可以在控制器上定义一个方法,该方法将根据所选语言或其他参数设置正确的布局。

class ApplicationController < ActionController::Base
  layout :choose_layout

  protected

  def choose_layout
    # replace this condition with your own
    if spanish_layout?
      "application_es"
    else
      "application_en"
    end
  end
end

预计您有两个文件app/views/layouts/application_es.*app/views/layouts/application_en.*。当然,您可以不在ApplicationController上定义此方法,而是在其他一些子控制器上定义。由你决定。