【发布时间】:2010-05-02 22:48:36
【问题描述】:
是否可以只为我的 rails 应用程序中的一个模型覆盖 to_sentence 方法?
更一般地说,如何修改模型数组的方法?
【问题讨论】:
标签: ruby-on-rails ruby arrays
是否可以只为我的 rails 应用程序中的一个模型覆盖 to_sentence 方法?
更一般地说,如何修改模型数组的方法?
【问题讨论】:
标签: ruby-on-rails ruby arrays
您可以在该特定模型中定义 to_sentence。
class Model < ActiveRecord::Base
def to_sentence
end
end
当您在 AR 中处理查询结果时,数组的每个元素都是模型类的一个实例,因此会自动拥有所有方法和属性。数组本身将具有内置 Array 和 Enumerable 类的所有方法(加上一些来自 AR 的附加功能)。您也可以覆盖或扩展这些类。
【讨论】:
ActiveSupport::CoreExtensions::Array::Conversions#to_sentence。将to_sentence 添加到他的 ActiveRecord 模型将无法实现。
正如你可以想象的那样,我在 Rails 和 Stackoverflow 上都是菜鸟,但我正在努力做到正确:)
我只是在applcation_helper.rb 上创建了一个助手,我可以在需要时调用视图。您认为这是要走的路,还是有比这更好的方法?
无论如何,我仍然很想知道是否有办法为包含特定类/模型的 Array 覆盖 Array 方法:)
【讨论】: