0

RailsのパーシャルをjQueryの子フィールドテンプレートと組み合わせて使用​​して、複数のネストされた子属性を持つフォームを動的に生成しています。これらのパーシャル内には、フォームでさまざまなイベント(onChangeなど)が発生したときに起動されるJavaScriptがあり、実行するコードは、関連しているが異なるフォーム要素のDOMを変更する必要があります。この特定のケースでは、POSタイプのソリューションで複数の販売トランザクションを特定のトランザクショングループに追加し、トランザクションごとに収集されるデータを制御するために使用しています。したがって、たとえば:

  1. ユーザーは、トランザクショングループに3つの新しいトランザクションレコードを追加するリンクをクリックします。
  2. ユーザーは、これら3つのトランザクションレコードのそれぞれに異なる値を設定します。各レコードは、各イベントのDOMをさまざまな方法で操作する必要があるJS関数を呼び出すonChangeイベントを発生させます。(例:トランザクション1は返品である可能性があるため、トランザクションのテキストがコストから返金に変更され、トランザクション2はサービス用である可能性があるため、課税ステータスが変更されます...)
  3. JS関数は、正しいトランザクションのためにDOMを変更できる必要があります。

私の問題は#3-変更されるDOM要素がイベントを生成する要素と同じではないため、JSthisを使用できませ。これらは共通の親要素の一部であるため(つまり、親<div>を共有します)、jQueryの親/子セレクターを使用してDOM内の正しい要素に移動できる場合があります。ただし、これでもdiv id属性にある程度の一意性が必要であり、Railsでこれらを動的に生成するための最良の方法がわかりません。

ランダムな値を使用できると思いますが、これは本当に一意であることが保証されておらず、ハックのように見えるため、悪いようです。なんらかのカウンターを導入しようと思うかもしれませんが、これはRails開発の原則に違反しているようです。

任意のガイダンスをいただければ幸いです。ありがとう!

4

2 に答える 2

1

現在の時刻を使用することは、苦痛と原因不明のバグのレシピです。一意のIDを生成するには、 GUIDジェネレーターのようなものを使用することを強くお勧めします。

于 2010-07-09T04:26:19.910 に答える
0

新しいタグを作成するときに、Time.nowをunique-idとして使用できます

Time.now.to_i

Railsの原則に反するハックや何かではありません;-)

于 2010-07-07T08:00:30.060 に答える