Rails form_tag 无需重新加载整个页面即可提交数据
Rails form_tag submit data without reload the whole page
我有一个名为从数据库中搜索渲染数据的模型,使用索引方法我从 3 个模型访问数据,将其显示在索引页面上。
我在索引页本身使用 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 %>
我还没有为此创建任何局部视图。
我在form_tag中添加了:remote => true,我不知道在哪里以及如何调用ajax?
我正在从表中搜索数据并使用 '<%= escape_javascript @center_lat.to_json %>' 获取更新的数据;在 index.html.erb 文件中
任何帮助都将不胜感激。
因为表单的远程选项设置为 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
您正在使用 :method => "get"
来发出获取请求,页面将始终重新加载,请尝试删除它并尝试查看它是否有效。
此外,您的控制器需要能够响应 JS 调用,使您在控制器上调用的操作具有类似这样的内容
respond_to do |f|
f.html { redirect_to tasks_url }
f.js
结束
我有一个名为从数据库中搜索渲染数据的模型,使用索引方法我从 3 个模型访问数据,将其显示在索引页面上。 我在索引页本身使用 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 %>
我还没有为此创建任何局部视图。
我在form_tag中添加了:remote => true,我不知道在哪里以及如何调用ajax? 我正在从表中搜索数据并使用 '<%= escape_javascript @center_lat.to_json %>' 获取更新的数据;在 index.html.erb 文件中
任何帮助都将不胜感激。
因为表单的远程选项设置为 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
您正在使用 :method => "get"
来发出获取请求,页面将始终重新加载,请尝试删除它并尝试查看它是否有效。
此外,您的控制器需要能够响应 JS 调用,使您在控制器上调用的操作具有类似这样的内容
respond_to do |f|
f.html { redirect_to tasks_url }
f.js
结束