0

私は主要な見解を持っています。その中に、この JS コードでパーシャルをレンダリングするボタンがあります。

$('#add_more_lines_btn').click(function () {
    $("#trees_details").append("<%= escape_javascript( render "/green_trees/tree_details") %>");
});

パーシャルには、異なる ID を持つ必要がある複数のフォーム要素があります。私が考えた最良のアイデアは、現在の時間をミリ秒単位で計算し、これをIDに追加することでした:

 <% time_now = (Time.now.to_f*1000.0).to_i.to_s %>

問題...

ボタンをクリックするたびに..パーシャルが最初の背後に正しく表示されます...しかし、すべてのフォーム要素は同じIDを持っています...したがって、Railsは常に同じパーシャルをペイントし、時間を計算しません。

レールが新しいパーシャルをロードしないのはなぜですか (毎回同じではありません)? コントローラーを呼び出さずにそれを行うことは可能ですか?

ありがとう。

4

1 に答える 1

0

あなたのタイム トリックは、Ryan Bates がレール キャストで行ったものと似ています: http://railscasts.com/episodes/196-nested-model-form-revised

私はあなたとまったく同じ手法を使用しますが、クリックハンドラーが検索と置換を行って一意の ID を作成するようにする必要があります (サーバー側ではなくクライアント側の時間生成を使用)。

于 2013-07-30T12:02:22.707 に答える