さまざまなデータを 1 つのフィールドに格納する手段として、Postgres 9.2 リリースで利用可能な Json 型を使用しようとしています。テーブルdata
に json 型の列を作成しました。corrections
フォームは通常の Rails フォームですが、作成するフォーム フィールドの数は@content array
このような長さに依存します。
<%= f.fields_for :data, @correction.data do |d| %>
<% @content.each do |content| %>
<%= d.text_area content, :class => 'content', :value => "", :cols => "40", :rows => "2", :id => 'correction_data_'"#{content.parameterize}"%>
<% end -%>
<%= end %>
@content 配列に 2 つの要素がある場合、データのデータベース エントリは次のようになります。
data: {"key from @content"=>"value entered in form field", "key from @content" => "value entered in form field }
2つの質問があります
1 Railsフォームを変更して、別のキーと値のペアを各キーと値のペア内にネストする(または関連付ける)にはどうすればよいですか?
"key from @content"=>"value entered in form field"
たとえば、このようなキーと値のペアごとに、このデータ列内にコメント フィールドをネストまたは関連付ける方法があるかどうか疑問に思っています。
"key from @content"=>"value entered in form field" comment key => comment value
"key from @content"=>"value entered in form field" comment key => comment value
2 これは適切な JSON 形式ですか? に応じてキーが常に変化する一連のキーと値のペアを保存しているように思えますcontent from @content
。そうでない場合、それは問題ですか?このようにすることで何かを逃していますか?
data: {"content from @content"=>"value entered in form field", "content from @content" => "value entered in form field }