创建基于主题的视图的最佳方法

时间:2018-07-14 02:56:58

标签: ruby-on-rails

我需要为我拥有的控制器创建单独的视图页面。

我有一个CustomerController,根据我需要创建自定义页面的客户,这些页面必须存储为文件,而不是数据库中的文件。

所以通常我会这样:

class CustomerController < ApplicationController
  def show
    @customer = Customer.find(param["id"])
  end
end

视图将位于:

/views/customer/show.html.erb

我想做的是拥有如下视图页面:

/views/customer/1/show.html.erb
/views/customer/2/show.html.erb
/views/customer/3/show.html.erb

如何引用要从操作内加载的特定视图页面?
有没有一种方法可以只将值1,2,3传递到视图文件夹路径?

1 个答案:

答案 0 :(得分:1)

您可以指定要在show操作中呈现的模板。没有您显式调用render的Rails,将呈现与该特定操作相对应的模板...因此,在您的情况下,它将自动呈现customers / show.html.erb(注意:您的控制器应为复数形式...即CustomerController,而不是CustomerController)

要覆盖此内容,您可以执行以下操作

def show
  @customer = Customer.find(params[:id])
  render "customers/#{@customer.id}/show.html.erb"
end