5

link_to_functiononclickイベントをアタッチして、イベントをクリックするとページ上の要素が更新されるようにするにはどうすればよいですか(パーシャルを使用)?

ユーザーが生成されたリンクをクリックしたときに、コードを含む部分を更新して更新したいと思いiます。

 def add_step_link(form_builder)
    logger.info 'ADD_STEP_LINK'
    link_to_function 'add a step' do |page|
      form_builder.fields_for :steps, Step.new, :child_index => 'NEW_RECORD' do |f|
        logger.info 'inserted js'
        html = render(:partial => 'step', :locals => { :step_form => f, :i=>@i+=1})
        page << "$('steps').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
      end
    end
  end 

私は、次のものだけを含む、より大きな形式のパーシャルを持っています。

<%= add_step_link(technique_form) %>

テクニックのステップ数を追跡しようとしています。私が作成しているフォームでは、ユーザーは一連の手順に新しいステップを追加できます。現在、手順1〜7のデフォルトフィールドがあります。1つのステップを追加すると、ステップ8になります。問題は、後続のステップにも「8」の番号が付けられていることです。

http://railsforum.com/viewtopic.php?id=28447の「動的形式の複数の子モデル」チュートリアルを自分の目的のために拡張しています。

4

2 に答える 2

5

わかりました、私はあなたが何をしているのかについて少し混乱していますが、いくつかの提案をしようと思います.

link_to_functionを使用する代わりに、 link_to_remoteを使用してください。関数へのリンクはjavascriptを呼び出しますが、実際にやりたいことは、rjsを実行して完全なパーシャルを置き換えるか、新しいパーシャル(ステップを含む)を現在の末尾に追加するコントローラーにコールバックすることですステップ。

これは、人々がブログのコメントの最後にコメントを追加する (remote_form_for ではなく link_to_remote を使用することを期待する) という、あなたが目にするすべての例に似ています。 /rails_blog_2.mov

ここで link_to_remote のドキュメントを参照できます: http://api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html

于 2009-05-09T19:00:12.820 に答える
0

link_to_remoteRichHが提案するように使用することをお勧めします。あなたにとっての秘訣は、 を追跡することです@i。URL パラメータとしてlink_to_remote、またはセッション オブジェクトに配置します。セッションをお勧めします—簡単に思えます。

于 2009-05-16T04:14:01.550 に答える