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

これは、たとえば、 ActiveModel::Dirty<attribute>_changed?からメソッドやその他のヘルパーを提供するために使用されます。

コードでどのように使用するかは、あなた次第です。ユーザーが入力した電子メールまたはユーザー名がまだ利用可能かどうかを確認するために、このアプローチでemail_taken?,メソッドを簡単に提供できます。username_taken?

モデルのいくつかの属性について(またはモデル間で)何かを知りたいときに、それを使用することを検討できると思います。

あなたが投稿した例は、1 つの属性にしか使用されていないため、私には意味がありません。:first_nameとを使用して例を:last_name作成した場合、一度だけ定義する必要がある再利用可能なヘルパー メソッドを作成できることは明らかです。

于 2012-11-09T02:41:41.307 に答える