8

Rails アプリに Bulletin 用のモデルがあり、モデルが作成されると、多くの値がシリアル化されたハッシュまたは配列としてデータベースに保存され、後でアクセスできるようになります。これらのハッシュの 1 つだけの編集ビューを作成しようとしていますが、フォームでアクセスする方法がわかりません。

保存時のハッシュは次のようになります。

top_offices = { first_office: "Office Name", first_office_amount: 1234.50, 
second_office: "Office Name", second_office_amount: 1234.50 }

などなど… 5つのオフィスがあります。

したがって、コンソールで次のようにして値を編集できます。

bulletin = Bulletin.last
bulletin.top_offices[:first_office] = "New Office"
bulletin.top_offices[:first_office_amount] = 1234.00
bulletin.save

これらの値を適切に割り当てることができるフォームを作成する方法がわかりません。フォームを使用するたびに完全に変更しているため、以前に保存した値をフォームに入力する必要さえありません。

4

2 に答える 2

6

これは、top_offices の既存のキーと値のペアを繰り返し処理し、それらのフォーム フィールドを生成する例です。

<% @bulletin.top_offices.each do |key, value| %>
  <input name="bulletin[top_offices][<%= key %>]" type="text" value="<%= value %>" />
<% end %>

生成します:

<input name="bulletin[top_offices][first_office]" ... />
<input name="bulletin[top_offices][first_office_amount]" ... />
# etc.

ユーザーを信頼していない場合は、top_offices に送信された値のサニティ チェックを実行することをお勧めします。

于 2013-05-22T15:45:33.963 に答える