0

开发人员会在哪些情况下遇到最适合使用 rails AttributeMethodsPrefix 和 suffix 方法的情况。以下内容直接取自 Rails 源代码,我仍然不确定它们的实用性。

  #   class Person
  #     include ActiveModel::AttributeMethods
  #
  #     attr_accessor :name
  #     attribute_method_suffix '_short?'
  #     define_attribute_methods :name
  #
  #     private
  #
  #     def attribute_short?(attr)
  #       send(attr).length < 5
  #     end
  #   end
  #
  #   person = Person.new
  #   person.name = 'Bob'
  #   person.name          # => "Bob"
  #   person.name_short?   # => true

感谢您的帮助;)

4

1 回答 1

1

这用于例如提供<attribute>_changed?方法,以及来自ActiveModel::Dirty的其他帮助器

如何在代码中使用它取决于您。您可以使用这种方法轻松地提供方法,以检查用户输入的电子邮件或用户名是否仍然可用email_taken?username_taken?

我想说,当您想了解模型的多个属性(或者可能跨模型)时,可以考虑使用它。

您发布的示例对我来说真的没有意义,因为它仅用于一个属性。如果他们使用:first_nameand构建了示例:last_name,那么您可以更清楚地构建可重用的辅助方法,这些方法只需要定义一次。

于 2012-11-09T02:41:41.307 回答