从控制器和视图渲染部分
Render partial from controller and from view
在我的 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
。
我想做的是从 listb.html.erb
中调用 <%= render 'lista' %>
。
但是当我这样做时,我收到一条错误消息,指出未找到部分 _lista
。
你有什么想法吗?
lista.html.erb
是一页,不是部分。您的代码正在寻找一个名为 lista
的部分,但它不存在。
我真的认为你应该创建一个名为 _lista
的新部分,你可以在 lista.html.erb
和 listb.html.erb
中渲染它。您的控制器仍然可以 render 'lista'
这将呈现部分 _lista
.
您需要创建 _list.html.erb
部分(任何文件名)文件以便在 lista.html.erb
或 listb.html.erb
之后访问它可以随意访问。
例如:-
# lista.html.erb
<%= render 'listb' %>
在lista.html.erb
中我们可以调用当前目录中的listb
(_listb.html.erb)文件。
您应该创建一个名为 _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' %>
在我的 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
。
我想做的是从 listb.html.erb
中调用 <%= render 'lista' %>
。
但是当我这样做时,我收到一条错误消息,指出未找到部分 _lista
。
你有什么想法吗?
lista.html.erb
是一页,不是部分。您的代码正在寻找一个名为 lista
的部分,但它不存在。
我真的认为你应该创建一个名为 _lista
的新部分,你可以在 lista.html.erb
和 listb.html.erb
中渲染它。您的控制器仍然可以 render 'lista'
这将呈现部分 _lista
.
您需要创建 _list.html.erb
部分(任何文件名)文件以便在 lista.html.erb
或 listb.html.erb
之后访问它可以随意访问。
例如:-
# lista.html.erb
<%= render 'listb' %>
在lista.html.erb
中我们可以调用当前目录中的listb
(_listb.html.erb)文件。
您应该创建一个名为 _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' %>