0

我有以下红宝石课程:

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

我想添加另一个基于 id 和 title 的键(特别是“#{id} #{data}”)。是否有捷径可寻。

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

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

该 slug_key 传递了要进行 slugize 的键之一的名称。我想定义两个键一起弹奏,而不必更改它们的代码。谢谢!

4

1 回答 1

0

我不确定键 :xx 来自哪里,但是要让您的类响应任意函数调用,例如 Question.1ABRA,您应该使用method_missing功能,只要常规可以检测到“#{id}#{data}”例外

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

于 2011-01-28T02:56:20.500 回答