3

フォームで更新しようとしている単純なアプリケーションを作成しましたが、奇妙なことが起こっています。

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 -%>
4

2 に答える 2

2

私は同じ問題を抱えていました。fields_forから@app.field_itemsを削除するとうまくいきました

<%= f.fields_for :field_items do |fi| %>
于 2013-06-13T06:18:06.887 に答える
1

次の行を削除すると、正常に機能するはずです。

<%= f.fields_for :field_items, @app.field_items do |fi| %>

まったく同じ問題が発生しfields_forました。ネストされたリソースではないため、呼び出しを削除する必要がないため、呼び出しを削除すると問題が解決しました。

于 2013-03-06T13:32:57.877 に答える