gpt4 book ai didi

javascript - link_to_remote 后缺少模板

转载 作者:行者123 更新时间:2023-11-29 22:42:46 24 4
gpt4 key购买 nike

我正在使用 link_to_remote 更新我页面上的部分内容。问题是 Rails 没有找到我的部分。

我在 Controller 方法中指定了我的部分(一个 html.erb 文件)的完整路径:

def my_method
create something

render :partial => '/shared/partials/my_partial_form', :layout => 'false'
end

我知道 Controller 方法受到了影响,因为“某物”被创建了。我收到错误 “找不到模板 [:controller_name]/[:method_name].js.erb”

谁能解释为什么 Rails 似乎使用 js.erb 的默认路径?

提前致谢!

最佳答案

Rails 正在响应 JS 格式。 render :partial 不算作每个 Action 的 1 次渲染/重定向调用。如果没有正确的渲染或重定向调用,Rails 将根据格式、 Controller 和操作使用默认参数调用渲染。

Render :partial 只是将文本返回给调用者,它不会构建响应。在这种情况下,部分内容被呈现为 HTML,但随后什么也没做。附言:layout => false 选项在渲染部分时是多余的。

您想使用 render :update 或 RJS 文件通过模板执行相同的操作。

假设你想替换整个网页,简短的版本是做这样的事情:

def my_method create something

render :update do |page|
page.replace_html :body, :partial => '/shared/partials/my_partial_form'
end
end

按照 RJS 路线,您可以创建 app/views/resource/my_method.rjs 文件并填充它

page.replace_html :body, :partial => '/shared/partials/my_partial_form'

关于javascript - link_to_remote 后缺少模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541347/

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