在rails中的子文件夹中添加新静态页面的格式是什么?

时间:2018-03-18 17:49:31

标签: ruby-on-rails

我的网站有两个静态页面,我需要两个其他页面,但在子文件夹中。 在视图下我有一个文件夹static_pages,当前的页面路径是

get '/about', to: 'static_pages#about'

我在static_pages下创建了一个子文件夹,其名称为:“es”,其中包含西班牙语的about页面。 我该怎么写这条路线?

get 'es/about', to: 'static_pages/es#about' 

似乎不起作用。

要添加到控制器的空方法是什么?

2 个答案:

答案 0 :(得分:0)

您可以使用ActionView::PartialRenderer#render方法并传递您要使用的文件:

def es_about
  render 'static_pages/es/about'
end

在es文件夹下,同时位于static_pages文件夹下:

app/views/static_pages
├── about.html.erb
└── es
    └── about.html.erb

路线应指定路线,控制器和动作:

get 'es/about', to: 'static_pages#es_about'

对于您要使用的任何路径或特定文件,这将采用相同的方式,但如果您考虑添加本地化路线,则可以查看Rails Internationalization (I18n) API

答案 1 :(得分:0)

您可以使用此方法以常规形式执行此操作:

config / routes.rb

get 'static_pages/:first/:second' => 'pages#show'

然后在您的PagesController中

def show
    render "/static_pages/#{params[:first]}/#{params[:second]}"
end

然后在您的视图中,它将在static_pages文件夹的前两级文件夹中呈现任何静态页面。您可以使用相同的格式添加任意多个级别。使用这种方法,您无需为每个视图创建特定的路由,只需将它们放在指定的根文件夹(例如static_pages)中您喜欢的任何子文件夹中即可。