Rails中的自定义字段,作为将来条目的模板



我正在寻找一些关于我目前在rails中实现自定义字段的计划的反馈。一般来说,我是rails和应用程序开发的新手,非常感谢有经验的人的任何评论。

应用程序:跟踪食品和饮料的品尝。


我想做的模型:

    用户创建一个新的样本类型。
    他们称之为:"葡萄酒"
  • 他们决定为他们的公司,他们想要跟踪以下属性:原产地,葡萄类型,公司,海拔,温度保持,和更多。
  • 关于我的数据库所做的样本类型的唯一假设是它有一个名称。(如。

现在已经创建了一个示例类型。


    用户开始创建样品型葡萄酒的样品。

    他们选择创建样品,选择葡萄酒类型。
    他们必须填写的字段是他们之前指定的。
    原产地:法国,葡萄类型:霞多丽等。

,

我的方法计划如下:

当用户创建样例类型时,将自定义字段存储为数组或某种字符串格式,并将其保存在名为data的列下。

SampleType
名称
葡萄酒

数据


[origin, grape_type, company, ...]

当用户想创建一个Wine类型的示例时:我查找示例类型wine,对于数据列中的每个键,它创建表单字段。当用户提交数据时,我创建所有自定义字段名称及其相应数据的散列。我序列化它并将其存储在数据列中的散列中,如下所示:



葡萄酒

数据
{ origin: "France", grape_type: "Pinot Grigio, ... }

我目前的计划是使用PostgreSQL的hstore来实现数据列的哈希。

我的问题是:
  1. 这是我想做的一个有效的解决方案吗?
  2. 当用户改变他们想要的自定义字段时,我会遇到麻烦吗?
  3. 还有其他需要考虑的问题吗?
  4. mongodb和其他这样的数据库是这种类型的模型更好的选择?

我一直使用以下链接作为参考:http://schneems.com/post/19298469372/you-got-nosql-in-my-postgres-using-hstore-in-railshttp://blog.artlogic.com/2012/09/13/custom-fields-in-rails/

和许多其他的堆栈溢出文章一样,但是似乎没有一个像我上面提到的那样使用它。

jtgi,我已经做过很多次这样的事情了,我的第一反应是,"逃跑!"根据我的经验,整个用户定义字段都是一场丑陋、粗糙的噩梦。很快,有人会问,"我可以搜索葡萄吗?"或者"我希望能够为葡萄输入多个值。"一直这样下去,你会恨自己走了这条路。: -)

那就是说,我认为你的方法是相当不错的。直接回答你的问题:
  1. 是的,这是一个有效的方法

  2. 是的,当用户更改他们想要的自定义字段时,您将遇到麻烦。(见上图)

  3. 。我在看到你的第四个问题之前就已经去了。使用field => value哈希,你可以实现noSQL解决方案,但它将实现查找,搜索等。

一些想法:

  • 我想我会将数据编组到db列中,而不是使用db函数。这样,它是纯Ruby的,而不依赖于db类型。见http://www.ruby-doc.org/core-1.9.3/Marshal.html。我现在这样做是为了在应用中缓存一些数据,这很巧妙。如果您希望存储比字符串更复杂的Ruby对象,那么无论如何都可能需要封送(l)数据。

  • 无论如何,您可能很快就会到达那里,所以我打算在您使用它时存储一些关于属性的"元数据"。例如,"grape"是一个字符串,最大长度为20,"rating"是一个介于0到100之间的整数。这样你就可以让你的表单更漂亮一些,并做一些基本的验证。

  • 当你讨厌这个功能的时候,你可以记住我。: -)

相关内容

  • 没有找到相关文章

最新更新