Как извлечь это, чтобы его можно было использовать в других частях моего приложения? - PullRequest
1 голос
/ 26 января 2011

У меня есть этот метод в моей модели книги, но теперь я понимаю, что он мне нужен и в модели категории:

def proper_user?(logged_in_user)
  return false unless logged_in_user.is_a? User
  user == logged_in_user
end

Теперь я продублировал этот метод в модели книг и модели категорий. И категория, и книги имеют принадлежность__: пользователь, и в таблице есть и имя_пользователя: целое число. Я просто хочу извлечь это где-нибудь, где я могу его СУХОЙ.

Я пытался поместить метод в application_controller.rb, но он говорит, что неопределенный метод `Proper_user? ' для #

Спасибо

Джеф

Ответы [ 2 ]

1 голос
/ 26 января 2011

Думаю, вы захотите вызвать этот метод следующим образом:

book.proper_user?(current_user)

Таким образом, лучше всего определить его в каждой модели, а не в пользовательской. Лучше всего это сделать, смешивая в модуле метод:

module UserMethods
  def proper_user?(logged_in_user)
    # ... etc ...
  end
end

и включая его в каждой модели:

class Book < AR::Base
  include UserMethods

class Category < AR::Base
  include UserMethods

Модуль может перейти в исходный файл в config / initializer, или вы можете поместить его в другое место и изменить config.autoload_paths в config / environment.rb, чтобы он указывал на местоположение.

0 голосов
/ 26 января 2011

Поскольку это связано с моделью User, почему бы не поместить ее туда?

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