我需要为我拥有的控制器创建单独的视图页面。
我有一个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传递到视图文件夹路径?
答案 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