rails app中静态页面的最佳做法

rue*_*ghn 3 ruby-on-rails rails-routing

我正在开发一个用于本地业务的ruby on rails应用程序.页面是"静态的",但可以通过我为他们构建的后端CMS进行更改.是否有为静态页面创建控制器的最佳实践?现在我有一个包含所有静态路由的站点控制器,就像这样.

的routes.rb

get "site/home"
get "site/about_us"
get "site/faq"
get "site/discounts"
get "site/services"
get "site/contact_us"
get "site/admin"
get "site/posts"
Run Code Online (Sandbox Code Playgroud)

或者我会更好地为这样的站点控制器创建成员路由,而不是因为"站点"不需要CRUD.

resources :sites, :except => [:index, :new, :create, :update, :destroy]
member do
  get :home
  get :about_us
  get :faq
  get :discounts
  get :services
  get :contact_us
  get :admin
  get :posts
end
Run Code Online (Sandbox Code Playgroud)

还是有最好的做法/更好的方法?任何答案将不胜感激.谢谢

Sai*_*ram 5

如果静态页面列表不会增加,那么您可以保留列表,但如果您想要一个像site/any_new_url这样的动态列表,请将路由保存为

get 'site/:cms_page' => 'cms#show' # all requests matching site/any_page will go CmsController, show method
Run Code Online (Sandbox Code Playgroud)

这有助于减少路线膨胀,但缺点是你不知道所有路线都是有效路线.您的示例代码可以是

def show
  @page_data = Page.find_by_page(:params[:cms_page])
end
Run Code Online (Sandbox Code Playgroud)

show.html.erb

<%= @page_data.html_safe %>
Run Code Online (Sandbox Code Playgroud)