Develop with pleasure!

福岡でCloudとかBlockchainとか。

RailsでAjax連携

RailsAjax連携する方法。

①link_to_remote
Railsで最も一般的な方法。

<%= link_to_remote( "click", :update => "target", :url =>{ :action => :update }) %>

なタグをrhtmlに入れておくとサーバ側でsay_whenアクションが呼ばれ、アクション内で、
render xxxx
とかすると、targetというID属性の中身がxxxに置き換わる。

んー、でも大体連携する時って、画面側から何かしらパラメータを渡す必要がある時がほとんどだから、このタグはあまり使わないかも。

②form_remote_tag
link_to_remoteと違って、FormのデータをXMLHttpRequestを使って送信する。

<%= form_remote_tag(:update => "target", :url => { :action => :update}%>

Formが丸ごと、Ajax連携というのなら良いけど、Formのとある項目のみAjax連携対象とかだと微妙だ。てか、Ajax使う場合ほとんど後者の方が多いんじゃないかと思う。

③Observers
これは①、②と違ってフィールドの値の監視をし、値が変化したときに、Ajaxで通信する。

<%= observe_field(:target_field, :frequency => 0.25, :update => :target, :url => { :action => :update}) %>

frequencyの設定内容が監視間隔。まぁ実運用上間隔の設定で判断するのも良いけど、onChangeみたいにEventを登録できると良いのに。