Ruby on rails 4 Rails 4 form_标记更新元素带有部分
在Rails 4中,我如何调整下面的控制器、视图和部分视图,以便当我单击Ruby on rails 4 Rails 4 form_标记更新元素带有部分,ruby-on-rails-4,Ruby On Rails 4,在Rails 4中,我如何调整下面的控制器、视图和部分视图,以便当我单击“更新时间”提交按钮时,id为“搜索结果”的html div将使用\u results.html.erb部分生成的内容进行更新 我已经有一段时间没有使用Rails了,我似乎记得在Rails1中使用Rails非常简单。我找到的Rails 4文档似乎涉及JQuery,我不熟悉它,也不了解如何将它绑定到这个表单中 我已经通读了以下内容: 但仍然不完全明白发生了什么 规则搜索控制器.rb class RuleSearchContro
“更新时间”
提交按钮时,id为“搜索结果”
的html div将使用\u results.html.erb
部分生成的内容进行更新
我已经有一段时间没有使用Rails了,我似乎记得在Rails1中使用Rails非常简单。我找到的Rails 4文档似乎涉及JQuery,我不熟悉它,也不了解如何将它绑定到这个表单中
我已经通读了以下内容:
但仍然不完全明白发生了什么
规则搜索控制器.rb
class RuleSearchController < ApplicationController
def index
end
def results
end
end
<%= form_tag('/rule_search_results', :id => 'search_form') do %>
<%= submit_tag "Update Time" %>
<% end %>
<div id='search_results'>
<%= render partial: "results" %>
</div>
<%= Time.new %>
<%= form_tag('/rule_search_results', :id => 'search_form', remote: true) do %>
<%= submit_tag "Update Time" %>
<% end %>
但是,如果我做了这么简单的事情:
<%= Time.new %>
<hr />
虽然控制台上没有出现错误,但什么也没有发生,搜索结果div也没有更新
进一步更新
我可以迭代AR对象数组,并在search_results div中打印它们的名称,前提是我使用下面这样的方法,并且它是文件中唯一的一行:
<% for rule in rules do %><%= rule.name %><% end %>
但是,下面的方法不起作用
<% for rule in rules do %>
<%= rule.name %>
<% end %>
这应该可以:
index.html.erb
class RuleSearchController < ApplicationController
def index
end
def results
end
end
<%= form_tag('/rule_search_results', :id => 'search_form') do %>
<%= submit_tag "Update Time" %>
<% end %>
<div id='search_results'>
<%= render partial: "results" %>
</div>
<%= Time.new %>
<%= form_tag('/rule_search_results', :id => 'search_form', remote: true) do %>
<%= submit_tag "Update Time" %>
<% end %>
“搜索表单”,远程:true)do%>
然后在与_results.html.erb文件相同的目录中创建一个名为“results.js.erb”的文件,如下所示:
$('#search_results').html('<%= render partial: "results" %>');
$('#搜索结果').html('');
它所做的是remote:true告诉控制器它不是一个javascript请求,因此控制器知道查找方法名后跟.js.erb的文件,并自动运行js代码
更新:为了解决多行HTML的问题,您可以在渲染之前添加一个“j”,这将转义输出:
$('#search_results').html('<%= j render partial: "results" %>');
$('#搜索结果').html('');
谢谢,效果很好,这正是我需要的。我真的需要进入JS的东西,并正确地学习它,但我现在在rails中所做的不需要太多。你的回答中缺少了一个括号,我对它进行了编辑,以防以后有人搜索这个问题。当results.html.erb中的代码不是简单的一行一个html标记文件时,这个答案会做一些奇怪的事情。请参阅相关更新以了解详细信息。我认为这是正确的,因为它确实做到了我最初想要的,这可能需要一个单独的问题。这对于绕过1行问题来说非常酷。干杯