フォームで更新しようとしている単純なアプリケーションを作成しましたが、奇妙なことが起こっています。
hStoreである列'field_items'があります。ビューのモデルでdebugを呼び出すと...
<%= debug @app.field_items %>
2つの適切なアイテムが返されます。Railsコンソールには、3つの追加機能も表示されません。
'field_items'を反復処理するform_forがあります
私のフォームでは、「builder」、「parent_builder」、「namespace」の3つの追加フィールドが返されます。
誰かアイデアはありますか?モデルの:field_itemsのシリアル化行をコメントアウトすると、3つの追加属性が返されないことに気付きました。
これが私のモデルです
class App < ActiveRecord::Base
belongs_to :page
attr_accessible :content, :title, :layouts, :field_items
serialize :layouts, ActiveRecord::Coders::Hstore
serialize :field_items, ActiveRecord::Coders::Hstore
end
これが私の編集ビューからのフォーム/コードです
<%= form_for [:admin, @app], :html => { :class => "form app_fields_form" } do |f| -%>
<div id="app_fields_row_container">
<%= f.fields_for :field_items, @app.field_items do |fi| %>
<% @app.field_items.try(:each) do |key, value| %>
<div class='app_fields_row item_row'>
<div class="column col1"><%= text_field_tag key, key, :class => "form_text_field dynamic_attr" %></div>
<div class="column col2"><%= fi.select key, options_for_select(APP_FIELD_TYPES, value), {}, {:class => "form_select"} %></div>
<div class="column col3"><a href="#" class="adm_button h_red small grey app_fields_delete">x</a></div>
</div>
<% end %>
<%- end -%>
</div>
<% end -%>