簡體   English   中英

從控制器和視圖渲染部分圖像

[英]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.erblistb.html.erb 您的控制器仍可以render 'lista' ,從而呈現部分_lista

您需要創建_list.html.erb 部分 (任何文件名)文件,以便在lista.html.erblistb.html.erblista.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM