私はRails 3を使用していますので、私のデフォルトのページ設定は となります1.検索フォーム 2.結果のリスト 3.編集選択された項目をリストから表示します。Railsで、検索、インデックス作成、編集はすべて同じページ内にあります
検索パラメータを失うことなくこれを行う方法がわかりません。おそらく、アイテムを選択するときに検索パラメータをもう一度渡す必要がありますが、どうすればよいですか?
結局、これをすべて同じページに入れるにはどうすればよいでしょうか?
私はRails 3を使用していますので、私のデフォルトのページ設定は となります1.検索フォーム 2.結果のリスト 3.編集選択された項目をリストから表示します。Railsで、検索、インデックス作成、編集はすべて同じページ内にあります
検索パラメータを失うことなくこれを行う方法がわかりません。おそらく、アイテムを選択するときに検索パラメータをもう一度渡す必要がありますが、どうすればよいですか?
結局、これをすべて同じページに入れるにはどうすればよいでしょうか?
検索フォームはAJAX経由でindex
に送信されます。 index
はjs.erbを送り、あなたの部分を読み込みます。アイテムを選択すると、AJAX経由でedit
が呼び出されます。 edit
はjs.erbを送信してedit
フォームを読み込みます。何か不足していますか?
あなたはAJAXなしでそれをしたい場合は、セッション中に、検索のparamsを格納することができます:アクションを更新するために、フォームを送信する際
session[:search_params] = "some value"
はまだ問題を抱えて。コントローラーで更新アクションは呼び出されません。私は、ログにこの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");
}
上記のコードで問題が見つかりました。 findメソッドのインデックスを指定する必要があります:saveElement($(this).find( "form")[0]); –
私は検索のparamsの問題を理解していません。なぜ検索を実行した後に検索パラメータを保持する必要がありますか? – Samo
このリンクは、検索のパラメータを保持すること(および興味があればページ区切り/並べ替え)を扱います:http://railscasts.com/episodes/240-search-sort-paginate-with-ajax – clemensp