ActiveRecord::Store 哈希的酪蛋白形式

Casein form for ActiveRecord::Store hash

我有一个 Rails 4.2 应用程序,它使用 Casein 5.1 作为管理界面。我以正常方式用常规字段(titlecontent)构建了 Page 模型,效果很好,但我不知道如何将值添加到哈希properties 使用 ActiveRecord::Store

#page.rb
class Page < ActiveRecord::Base
  store :properties
end

我在控制器中所做的所有更改都是将 properties 添加到允许的参数中:

#pages_controller.rb
def page_params
  params.require(:page).permit(:title, :content, :properties)
end

目前的表格如下所示:

<div class="col-lg-6">
        <%= casein_text_field f, f.object, :title %>
    </div>
    <div class="col-lg-6">
        <%= casein_text_area f, f.object, :content %>
    </div>

    <%= f.fields_for :properties do |ff| %>
        <div class="col-lg-6">
            <%= casein_text_field ff, ff.object, :test_property %>
        </div>
    <% end %>

properties 散列被保存为空散列。我如何传递一个值,以便可以通过管理员更改 properties.test_property

编辑:如果有足够代表的人想创建一个酪蛋白标签,那会很酷。

模型中:store :properties, accessors: [:test_property]

在控制器中:params.require(:page).permit(:test_property)

在页面表单中: <%= casein_text_field f, f.object, :test_property %>

然后使用它,例如@page.test_property

(我很久以前就找到了这个问题的答案,忘记更新问题了)