gpt4 book ai didi

ruby-on-rails - 重用 View 模板的rails

转载 作者:行者123 更新时间:2023-12-04 06:48:58 25 4
gpt4 key购买 nike

这里有一个 Rails 新手

我的 Controller 中有 2 个操作 1)索引 2)refine_existing。
它们都以相同的格式显示结果。
如何重用 index.html.erb 文件?

当我尝试以下操作时,它提示细化_existing.erb 不存在。

def refine_existing
...
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @results }
end

结尾

我的索引操作看起来像这样
def index
#some logic to get @results
#set some session variables etc.
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @results }
end
end

我是否必须重构我的索引 View 以包含部分
a) 制作标题
b) 渲染@results
并重复使用它们?
即使 index.html.erb 和fine_existing.html.erb 看起来完全一样

有什么办法可以在我的优化现有操作中使用 index.erb View ?

提前致谢

最佳答案

按照惯例,如果您没有指定模板名称,Rails 会查找与该操作匹配的模板名称。您可以通过调用 render 来覆盖它。显式地使用所需的模板名称。唯一的问题是路径是相对于 TEMPLATE_ROOT 的,通常是 app/views :

def refine_existing
...
respond_to do |format|
format.html { render :template => "<table_name>/index.html.erb" }
end
end

替换 table_name使用模型的“表格化”形式。例如。如果您的 Controller 是 PostsController ,然后 posts .因此,您的模板将位于 app/views/posts/index.html.erb 中-- 如果您自定义了路径,可以根据需要进行调整。

关于ruby-on-rails - 重用 View 模板的rails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3392584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com