我正在尝试让一个 Ajax 调用在 rails 中工作,不太确定我做错了什么
所以在我的索引中,我有一个调用 api 然后将结果返回到结果路径的表单。 所以我要做的是获取在索引页面上呈现的结果
到目前为止,我所拥有的是
控制器
def index
end
def results
results = contact_search(params[:search])
@results = results
end
指数
<div class="container">
<div class="row">
<div class="span6 offset3">
<h2>Search for a contact</h2>
<%= form_tag results_path, :method => "get", :remote => true do %>
<%= text_field_tag 'search', nil, :placeholder => "Enter Email Address here...." %>
<%= submit_tag 'Search' , :id => "submitForm" %>
<% end %>
</div>
</div>
</div>
<div class="container">
<div class="row">
<div class="span6 offset3">
<div class="cResults">
</div>
</div>
</div>
</div>
部分 _contactResults.html.erb
<h1>The Results</h1>
<%= @results["contactInfo"]["familyName"] %><br>
<img src= <%= @results["photos"].first["url"] %> />
索引.js.erb
$('.cResults').html("<%= escape_javascript(render partial: 'contactResults') %>");
我错过了什么吗?
你的javascript文件应该被命名为"计算"结果的操作:
# in results.js.erb, not index.js.erb
$('.cResults').html("<%= escape_javascript(render partial: 'contactResults') %>");
如果需要为控制器的操作执行 Javascript,则可以将文件命名为操作,使用 .js.erb
而不是通用.html.erb
。当控制器收到此操作的请求(解释为 JS)时,将执行此文件。