2010-12-30 2 views
1

私はRails 3を使用していますので、私のデフォルトのページ設定は となります1.検索フォーム 2.結果のリスト 3.編集選択された項目をリストから表示します。Railsで、検索、インデックス作成、編集はすべて同じページ内にあります

検索パラメータを失うことなくこれを行う方法がわかりません。おそらく、アイテムを選択するときに検索パラメータをもう一度渡す必要がありますが、どうすればよいですか?

結局、これをすべて同じページに入れるにはどうすればよいでしょうか?

+0

私は検索のparamsの問題を理解していません。なぜ検索を実行した後に検索パラメータを保持する必要がありますか? – Samo

+1

このリンクは、検索のパラメータを保持すること(および興味があればページ区切り/並べ替え)を扱います:http://railscasts.com/episodes/240-search-sort-paginate-with-ajax – clemensp

答えて

1

検索フォームはAJAX経由でindexに送信されます。 indexはjs.erbを送り、あなたの部分を読み込みます。アイテムを選択すると、AJAX経由でeditが呼び出されます。 editはjs.erbを送信してeditフォームを読み込みます。何か不足していますか?

0

あなたはAJAXなしでそれをしたい場合は、セッション中に、検索のparamsを格納することができます:アクションを更新するために、フォームを送信する際

session[:search_params] = "some value" 
0

はまだ問題を抱えて。コントローラーで更新アクションは呼び出されません。私は、ログにこのERROを得る:

ActionController :: RoutingError( ルートマッチ "/ 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 fですILE:

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

これは部分的に私_formの始まりです:

<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"); 
} 
+0

上記のコードで問題が見つかりました。 findメソッドのインデックスを指定する必要があります:saveElement($(this).find( "form")[0]); –

関連する問題