5

JSON PostgreSQLタイプからレールのネストされたフォームに値を埋める方法は?

私は次のようなモデルを持っています

title :text
description :text
grid :json

プロパティ内にディメンションやその他のものを保存したい

{
  "cols": 15, 
  "rows": 15
  "pos": {
      "x": 10, 
      "y": 5
  }
}

対応するフォーム

@form_for @product do |f|
  f.text_field :title 
  f.text_field :description

  f.fields_for :grid do |grid_f|
     grid_f.text_field :cols 
     grid_f.text_field :rows
  end
end 

しかし、列と行は入力されていません。入力を手動で作成し、値を手動で設定する必要がありますか。それとも @product.grid の中に記号ではなく文字列があるからですか?

@product.grid[:cols] は機能しませんが、@product.grid['cols'] は機能します。

4

1 に答える 1

1

formhelper はスキーマを使用してフィールドを生成すると思いますが、hstore 内の項目は異なる可能性があるため、それらのフィールドを自動的に生成することはできません。

実装の詳細とは別に、オブジェクト ( source )の値を反復処理できます。

<% f.grid.attributes.try(:each) do |key, value| %>
  <%= f.text_field key, :input_html => {:value => value } %>
<% end %>
于 2014-02-05T17:52:14.450 に答える