2017-02-23 88 views
0

我有模型称为搜索从数据库渲染数据,使用索引方法我正在访问3个模型的数据,并将其显示在索引页上。 我使用的form_tag索引页面本身,Rails的form_tag提交数据,而无需重新加载整个页面

  <%= form_tag(search_path, :method => "get", :remote => true, id: "search-form") do %> 
      <label for="Longitude ">Lon</label> 
       <%= text_field_tag :lng, params[:lng], :id => "longitude", placeholder: "Longitude" %> 
      <label for="Latitude ">Lat</label> 
       <%= text_field_tag :lat, params[:lat], :id => "latitude", placeholder: "Latitude" %> 

       <button class="btn waves-effect waves-light" >Process</button> 


     <% end %> 

我还没有建立这方面的任何局部视图。

我添加了:remote => true在form_tag中,我不知道在哪里以及如何为此调用ajax? 我正在从表中搜索数据并使用'<%= escape_javascript @ center_lat.to_json%>获取更新的数据';在index.html.erb文件中

任何帮助将是可观的。

回答

1

由于表单的远程选项设置为true,请求将作为Ajax请求发布到您的控制器,以查找JavaScript。为了满足这一要求,你的控制器的作用是这样的:

def MyController 

    ... 

    def my_action 
    respond_to do |format| 
     format.js { ... } 
     format.html { ... } 
    end 
    end 
    ... 

format.js {...允许控制器到您的Ajax请求作出回应。所以你需要渲染一个.js.js.erb

看看这里,这将是更具启发性:http://guides.rubyonrails.org/working_with_javascript_in_rails.html

+0

我已经加入到format.js我的控制器索引操作,创建.js,erb视图,但在该视图中如何呈现索引操作? – Pbms

+0

看看这里:http://guides.rubyonrails.org/working_with_javascript_in_rails.html#server-side-concerns,你需要使用一些JavaScript来呈现你的结果,而无需重新加载页面。 – Victor

0

您正在使用:method => "get",做一个GET请求的页面会一直刷新,请尝试删除并尝试看看是否可行。

此外,控制器必须能够回答JS调用,让你您所呼叫控制器上的行动有这样的事情

respond_to do |f| 
f.html { redirect_to tasks_url } 
f.js 

+0

如果我删除:method =>“get”,那么它会抛出路由错误,因为没有get方法,它会默认考虑发布。 – Pbms

+0

respond_to do | f | f.html {redirect_to tasks_url}什么是tasks_url? – Pbms