获取Postgresql / Hstore在rails中返回的“builder”,“parent_builder”和“namespace”字段

时间:2013-01-11 20:56:01

标签: ruby-on-rails postgresql hstore

我构建了一个简单的应用程序,我正在尝试使用表单进行更新,但是仍然有些奇怪。

我有一个'field_items'列,它是一个hStore。如果我在视图中调用模型上的调试......

<%= debug @app.field_items %>

我得到了两个合适的物品。在rails控制台中,我也看不到这三个额外内容。

我有一个form_for,我遍历'field_items'

在我的表单中,它返回三个额外字段“builder”,“parent_builder”和“namespace”

有人有什么想法吗?我注意到如果我注释掉模型中的序列化行:field_items,它不会返回三个额外的属性


这是我的模特

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

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。从fields_for中删除@ app.field_items为我工作

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

答案 1 :(得分:1)

删除以下行,它应该可以正常工作:

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

我遇到了完全相同的问题,删除fields_for调用解决了这个问题,因为它不需要它,因为它不是嵌套资源。