[英]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' %>
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
進行訪問,然后可以根據需要進行訪問。
例如:-
# lista.html.erb
<%= render 'listb' %>
) file that are in current directory. 在lista.html.erb
我們可以調用當前目錄中的listb
( )文件。
您應該使用_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' %>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.