【问题标题】:Ruby class key based on other keys基于其他键的 Ruby 类键
【发布时间】:2011-06-16 10:20:07
【问题描述】:

我有以下 ruby​​ 类:

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 的键之一的名称。我想定义两个键一起弹奏,而不必更改它们的代码。谢谢!

【问题讨论】:

  • 这个类不能那样工作。这是什么对象。 ActiveRecord::Base, Mongoid::Document, DataMapper ?
  • 你能在这里提供更多的上下文/代码吗?那个关键方法是从哪里来的?

标签: ruby-on-rails ruby slug


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2019-12-01
    • 2021-08-26
    • 2021-08-11
    • 2012-03-07
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多