0

ユーザーがデータベースに送信されるプロジェクトを作成できるアプリケーションがあります。

<div class="project_name">
    Project Name:
    <%= f.text_field :project_name,:maxlength => 30 %>
  </div>

<%= label_tag :new_client, "Client:" %><br/>
<%= text_field_tag :new_client, nil, :maxlength => 30%>
Or
<%= f.select( :new_client, Project.all.map {|p| [p.new_client]}.uniq, :prompt => "Select an new_client") %>
</div> 

ここでは、新しいプロジェクト名のテキストを送信するオプションがあり、既存のクライアントを選択するか、データベースに保存され、後でドロップダウンで利用できる新しいクライアントを入力するオプションがあります次に作成されるプロジェクト。

業界を選択できる 3 番目のオプションを追加しようとしています。ただし今回は、ユーザーは 1 つのプロジェクトに対して多くの業界を選択できます。これについて最善の方法は何ですか?

最も一般的な業界がすべて別のテーブルに事前入力されたドロップダウンを考えていました。ユーザーが別のテーブルを必要とする場合は、ボタンをクリックして別のドロップダウンを表示できます。業界が存在しない場合、テキスト フィールドに入力すると、そのプロジェクト エントリと共に保存され、新しい業界テーブルに保存され、次のユーザーが利用できるようになります。

うまくいけば、誰かが私を正しい方向に向けることができます。私はレールに慣れていないので、簡単に行ってください。

4

1 に答える 1

1

このビデオを確認する必要がありますhttp://railscasts.com/episodes/196-nested-model-form-part-1 この種の状況では、recordselect gem を使用して既存のオブジェクトを選択し、jquery テンプレートを使用してオブジェクトを追加します。現在の形に。ただし、これを行うにはいくつかの js を実行する必要があります。代わりに、単純なドロップダウンを :multiple => true オプションで使用して、複数のオブジェクトを選択することもできると思います。これを行う最善の方法は非常に単純ではありません...しかし、ネストされたフォームで何ができるかを理解するために、レールキャストの複雑なフォームの例から始めるべきだと思います。

于 2012-09-26T10:10:02.137 に答える