在我的Rails应用程序中,我可以从控制器和另一个erb文件中渲染一个erb文件,如下所示:
# a_controller.rb
class AController < ApplicationController
def index
render 'lista'
end
# b_controller.rb
class BController < ApplicationController
def index
render 'listb'
end
# lista.html.erb
<%= render 'list' %>
# listb.html.erb
Some content that I want to keep
<%= render 'list' %>
# _list.html.erb
Hello
如您所见,lista仅呈现部分_list
。
我想要做的是从<%= render 'lista' %>
内拨打listb.html.erb
。
但是当我这样做时,我收到一条错误消息,指出找不到部分_lista
。
你有想法吗?
答案 0 :(得分:1)
lista.html.erb
是一个页面,而不是部分页面。您的代码正在寻找名为lista
的部分代码,但它不存在。
我真的认为你应该创建一个名为_lista
的新部分,你可以在lista.html.erb
和listb.html.erb
中进行渲染。您的控制器仍然可以render 'lista'
,这将呈现部分_lista
。
答案 1 :(得分:1)
您需要创建_list.html.erb
部分(任意文件名)文件,以便在lista.html.erb
或listb.html.erb
之后访问它,之后您可以根据需要进行访问
例如: -
# lista.html.erb
<%= render 'listb' %>
在lista.html.erb
中,我们可以调用当前目录中的listb
( _listb.html.erb )文件。
答案 2 :(得分:1)
您应创建名称为 _lista.html.erb 的部分,或者您可以将文件名从 lista.html.erb 更改为 _lista.html。 ERB 强>
当前文件lista.html.erb不是部分原因,当您尝试渲染 lista 部分时,rails会为您生成错误
#lista.html.erb
##assuming list is in lista/list.html.erb
<%= render 'lista/list' %>