开发人员在哪些情况下会遇到使用rails AttributeMethodsPrefix和后缀方法的理想情况。 以下内容直接来自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
感谢您的帮助;)
答案 0 :(得分:1)
例如,这用于提供<attribute>_changed?
方法以及ActiveModel::Dirty
如何在代码中使用它取决于您。您可以使用此方法轻松提供email_taken?
,username_taken?
方法,以检查用户输入的电子邮件或用户名是否仍然可用。
我想你可以考虑在你想要了解模型的几个属性(或者可能跨模型)时使用它。
您发布的示例对我来说并没有多大意义,因为它仅用于一个属性。如果他们使用:first_name
和:last_name
构建示例,那么您可以构建可重用的辅助方法更清楚,这些方法只需要定义一次。