在Rails中,搜索,索引和编辑所有在同一页面中

时间:2010-12-30 18:30:29

标签: ruby-on-rails

我正在使用Rails 3,我的默认页面设置将包含: 1.搜索表单 2.包含结果的列表 3.编辑表单,用于显示列表中的所选项目。

我不知道如何在不丢失搜索参数的情况下执行此操作。当我选择一个项目时,我可能必须再次通过我的搜索参数,但是,怎么样?

毕竟,将所有这些放在同一页面的最佳方法是什么?

3 个答案:

答案 0 :(得分:1)

搜索表单通过AJAX提交到indexindex向下发送js.erb以加载您的部分内容。选择项目通过AJAX调用editedit向下发送js.erb以加载您的edit表单。我错过了什么吗?

答案 1 :(得分:0)

如果你想在没有ajax的情况下这样做,你可以在会话中存储搜索参数:

session[:search_params] = "some value"

答案 2 :(得分:0)

提交表单以更新操作时仍然遇到问题。控制器中没有调用更新操作。我在日志中得到了这个错误:

  

ActionController :: RoutingError(No   路线匹配“/ cids”):

这是我的主要索引页面:

<div id="page-content">
  <%= render "search_form" %>
  <%= render "search_grid" %>
  <%= render "form" %>
</div>

这是显示编辑表单的链接:

<td><%= link_to '', edit_cid_path(cid), :remote=>true %></td>

这是edit.js.erb文件:

$("#edit-form").html("<%= escape_javascript(render("form")) %>")

这是我_form partial的开头:

<div id="edit-form">
  <% if @cid %>
    <%= form_for(@cid, :html => {:method => "put", :id=>"update-form"}) do |f| %>
      <% if @cid.errors.any? %>

这是application.js代码:

  $("#edit-form").submit(function(){
    saveElement($(this).find("form"));
    return false;
  });

function saveElement(obj)
{
  $.post(obj.action, $(obj).serialize(),
    function(){refreshCss()},
    "script");
}