0

わかりました。私のタイトルは少しあいまいですが、私が抱えている問題を最もよく説明しています。

基本的に、私はユーザーのリストを持っており、AJAX を使用してその情報をインラインで編集できるようにしたいと考えています。

ユーザーが行に表示されているため、データとフォーム (最初は ajax によって非表示になります) をレンダリングするためにパーシャルを使用しています。

これは、すべてのフォーム フィールドが同じ ID を持ち、DOM を混乱させているという事実と関係があると思われます。しかし、IDが一意であることを確認する方法がわかりません。

以下に小さな例を示します。

私からしてみれば:

<%= render :partial => 'shared/user', :collection => @users %>

私の部分的な(フォームだけに分解された)メモは、ローカル変数「user」を使用していることです

<% form_for user, :html => {:multipart => true} do |f| -%>
<%= f.label :name, "Name*" %>
<%= f.text_field :title, :class => "input" %>
<%= f.label :Address, "Address" %>
<%= f.text_field :address, :class => "input" %>
<%= f.label :description, "Description*" %>
<%= f.text_area :description, :class => "input" %>
<% end -%>

HTML がレンダリングされると、各フォームには一意の ID (ユーザーの ID) がありますが、要素自体はすべて同じ ID を持ち、最後のユーザー フォームだけが実際に値を取り込まれます。

誰にもアイデアはありますか?? :)

前もって感謝します!

4

1 に答える 1

1

さて、ランチを食べて脳細胞を取り戻した後(そしてGoogleの助けを借りて)、これを見つけました。

次のようにコレクションをパーシャルに渡す場合:

<%= render :partial => 'shared/user', :collection => @users %>

Rails は、「variable_counter」の形式でフォームのインデックスを定義するために使用できるカウンター変数を作成します。

<% form_for user, :index => user_counter, :html => {:multipart => true} do |f| -%>

これにより、インデックス番号がフォーム ID とすべてのフィールド ID に追加され、小さな問題が解決されました。:)

これがこの問題で他の誰かに役立つことを願っています。:)

于 2010-06-07T20:14:17.767 に答える