私は100%動作するremote_formを持っています
ユーザーが送信をクリックすると、データベースからデータまたは別の Web サイトからスクレイピングされたデータが取得され、ページがシームレスに更新されます...
私が今抱えている問題は、同じことをしたいのですが、ユーザーが onload イベントで送信ボタンをクリックすることなく実行したいということです。私はそれについて間違った方法で行っていると思います:
技術的にはこれは機能します...正しいデータを取得しますが、remote_form_tagが行うことを正確に行う代わりに、生のデータを返します。RJS replace_html はありません。
form_for を完全にスキップして、ページの読み込み時にコントローラ アクションを直接実行する方法はありますか?
<script type="text/javascript">
$(window).load(function() {
// executes when HTML-Document is loaded and DOM is ready
// jQuery.facebox('Big loading! <img alt=\"Loading\" src=\"/images/loaders/loading.gif\" />');
//$("#update_form").submit();
$("#update_form").submit(function () { return false; });
});
</script>
のフォーム
#html.erb
<% form_remote_tag :url => { :action => "update_availables", :id => params[:id] },
:loading => "jQuery.facebox('Big loading! <img alt=\"Loading\" src=\"/images/loaders/loading.gif\" />');",
:html => { :method => "get" },
:method => "get",
:html => { :id => 'update_form' } do %>
コントローラー
def update_availables
@do_it = Available.get_new_availables :id => params[:id], :date => user_cart.getDate.to_s
get_availables
respond_to do |format|
format.html
format.js
end
end
RJS
page.replace_html :rooms, :partial => "available"
page << "jQuery.facebox.close();"