Расширения ассоциации Activerecord на own_to - PullRequest
1 голос
/ 01 сентября 2011

Можно ли сделать расширение ассоциации для отношения belongs_to?

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

module TestExtension
  def test
    puts 'test successful'
  end
end

class Question < ActiveRecord::Base
  belongs_to :user, extend: TestExtension
end

Каждый раз, когда я запускаю его, он жалуется, что метод закрытый

q = Question.first
q.test
# => NoMethodError: Attempt to call private method `test'

Я не на 100% уверен, можно ли делать AR-расширения для принадлежащих_в. На Rails 3.0.7 все работало нормально, но теперь не работает в 3.1.0

1 Ответ

0 голосов
/ 01 сентября 2011

Это известная проблема в 3.1.0, которая еще не решена. По сути, новый дизайн ассоциаций в 3.1.0 не поддерживает расширение belongs_to ассоциаций, так как он никогда прежде не был поддерживаемой функцией. Тем не менее, проблема все еще остается открытой, поэтому она может быть решена в будущем; Вы, вероятно, должны прокомментировать проблему, чтобы получить поддержку, если хотите.

Кроме того, частная ошибка метода, которую вы получаете, вы получите, даже если у вас не было части extend: TestExtension; Я считаю, #test - это закрытый метод для всех ActiveRecord объектов.

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