我正在关注这个 railscast,并完成了教程。一切正常。然后我决定用hstore代替序列化hash,设置hstore后,遇到了错误:
PG::Error: ERROR: Syntax error near '!' at position 4 : INSERT INTO "products" ("product_type_id", "created_at", "properties", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id"
我用谷歌搜索,发现了一个类似的 SO question,但我使用的是 Rails 4,据说它不再需要使用那个 gem。
这是我的代码:
我的 form.html.haml 的相关部分如下所示
= f.fields_for :properties, OpenStruct.new(@product.properties) do |builder|
- @product.product_type.products.each do |product|
= render "products/fields/#{product.field_type}", field: field, f: builder
我的产品模型如下所示:
class Product < ActiveRecord::Base
belongs_to :product_type
serialize :properties
end
如果有帮助,我可以发布更多代码。谢谢!