Как написать собственный метод для ActiveRecord, используя 'actions_as_ <something>'? - PullRequest
3 голосов
/ 13 марта 2011

Я использую Ruby on Rails 3, и я пытаюсь использовать какой-то специальный метод для ActiveRecord, чтобы я мог сделать

Account.<my_method_name>

для добавления, например, некоторых данных в объект Учетной записи (но без изменения самих данных Учетной записи).

Я слышал о acts_as_<something> утверждении, и оно используется, если я не ошибаюсь, при создании плагинов, но я не понял, если это то, что мне нужно. После добавления acts_as_<something> возможно, мне нужно написать где-нибудь метод, подобный следующему, чтобы «воздействовать» на текущий ActiveRecord, для которого вызывается <my_method_name>:

def self.<my_method_name>
  ...
end

Может кто-нибудь объяснить мне, как это использовать? И, если возможно, можете ли вы сделать мне реальный пример его использования?


Кстати : лучше ли создать плагин или записать библиотеку в папку RAILS_ROOT/app/lib?

1 Ответ

3 голосов
/ 13 марта 2011

Вы можете посмотреть, как реализовать здесь => http://thoughtsincomputation.com/posts/coding-an-acts_as-gem-for-rails-3

Для реального примера -> https://github.com/mbleigh/acts-as-taggable-on

act_as * - это просто способ добавить поведение в класс. Вы можете сделать то же самое, имея модуль ActsAs * и включив этот модуль в класс. Используйте act_as *, только если вы хотите принимать аргументы при добавлении этого общего поведения, в противном случае просто создайте модуль и включите его в класс

В геме act_as_taggable_on это имеет смысл, потому что он принимает аргументы при добавлении поведения.

acts_as_taggable_on: языки,: навыки

Ваш вопрос похож на rails3 gem: acts_as_something

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...