0

複数のレコードを編集するために作成しようとしているフォームがあります。これは複雑で、データベースに直接マップされておらず、レコードがいくつあってもかまいません。すべてのデータがハッシュとしてビューに渡されるようにコードを記述しました。このような:

 @formdata = {"datafield_1"=>"value_1", "datafield_2"=>"value_2"}

私がやりたいのは、次のようなものを作成することです。

 f.textfield :datafield_1
 f.textfield :datafield_2
 f.textfield :datafield_3
 etc. etc. etc.

しかし、forループのインデックスを変数名に渡す方法がわかりません。要するに、私はどのように:datafield_iを行うのですか?ここで私は私のインデックスですか?

4

1 に答える 1

0
<% %w(1 2 3).each do |i| %>
  <%= f.textfield(:"datafield_#{i}") -%>
<% end %>

また

<% @formdata.keys.each do |datafield| %>
  <%= f.textfield(datafield.to_sym) -%>
<% end %>
于 2012-10-05T04:53:18.437 に答える