基于其他键的Ruby类键

时间:2011-01-27 09:42:42

标签: ruby-on-rails ruby slug

我有以下ruby类:

class Question
key :id, String
key :data, String, :default => "", :required => true

我想添加另一个基于id和title的键(特别是“#{id}#{data}”)。有没有一种简单的方法可以做到这一点。

我需要这个的原因是因为我正在使用mongo map slugizer,它想要一个密钥的名称slugize(它的代码调用slugize(self[key_provided]))我试图弄清楚如何使用它来强制id +数据在一起而不必改变它的代码。任何想法?

编辑: 我正在使用来自mongomapper_ext的slugizer。您可以从以下示例中看到:https://github.com/dcu/mongomapper_ext/blob/master/examples/slugizer.rb

slug_key传递了其中一个要进行slugize的键的名称。我想定义两个密钥,以便不必更改代码。谢谢!

1 个答案:

答案 0 :(得分:0)

我不确定密钥的位置:xx来自但是为了让您的类响应任意函数调用,例如Question.1ABRA,您应该使用 method_missing 功能,只要“#{id}#{数据}“可以通过常规异常检测

http://kconrails.com/2010/12/21/dynamic-methods-in-ruby-with-method_missing/