[英]avoiding layout reloading in ruby on rails project
在 ruby on rails 中,我想动态加载页面数据。 但那一次我不想刷新或加载布局页面,只应呈现正文。我有两个页面,当我从一个页面切换到另一个页面时,不应重新加载布局页面数据,只应加载另一个页面数据.
您可以在此处采用两种不同的方法。
Turbolinks - 这将比您想要的更令人耳目一新,但如果您经常做这种事情,您可能需要阅读一下。 https://github.com/rails/turbolinks
使用以下方法手动使用ajax请求:
A. 将以下 gem 添加到您的 Gemfile https://github.com/rails/jquery-ujs
B. 将其包含在您的 JS 中。 例如,在您的 JavaScript 文件中,通过包含以下内容来加载它:
//= require jquery
//= require jquery_ujs
C: 更新您的链接以包含 remote: true:
<%= link_to 'New page', page_path, remote: true %>
D:在你的控制器中添加对 js 的响应。 例如:
def action_name
respond_to do |format|
format.html
format.js
end
end
E:在您的视图中创建一个名为 action_name.js.erb 的新文件。 然后,您可以在此文件中放置任何 javascript 代码。 因此,您可以定位页面上的特定元素并将其替换为部分元素。
例如
$("#id_of_element_on_page").html("<%= escape_javascript(render(partial: 'page_content', locals: { project: @project })) %>");
差不多就是这样,当您现在单击链接时,您的应用程序应该发送一个 ajax 请求,您应该在响应中获得呈现的 javascript,这反过来应该更新您希望替换的页面上的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.