Привет, я хотел бы знать, возможно ли удалить ассоциацию в рельсах.Удалить модель ассоциации в Rails
Ну, у меня есть что-то похожее на это:
class Home < ActiveRecord::Base
include settings
end
На settings.rb у меня есть что-то похожее на этот
module Settings
attr_reader :person
attr_reader :address
def self.included(base)
base.belongs_to :city
base.belongs_to :entity
[...]
end
[...]
end
На главном классе город модель ассоциации на моем конкретном случае дона» Имеют смысл. И я должен найти способ удалить его, чтобы поддерживать мой код DRY.
Спасибо!
ПРИМЕЧАНИЕ: Дайте мне обратную связь перед тем, как проголосовать пожалуйста.
Я не могу вспомнить какой-либо метод в ActiveRecord, но я все равно подойду к этой проблеме с противоположной стороны. Я думаю, что гораздо лучше не добавлять ассоциации, в которых вы не нуждаетесь. Один из вариантов - переместить все вызовы 'belongs_to' в отдельный метод, который будет принимать список необходимых ассоциаций. В этом случае вам придется вызывать этот метод явно после включения модуля, но он по-прежнему выглядит лучше, чем добавление всех и удаление ненужных ассоциаций. –
Если есть только одно исключение, поместите другой код в класс Home, для других классов, которые повторно используют ваш модуль, используйте include. Много DRY не всегда удобно. – eveevans
Я думаю, что вы немного педантичны в этом вопросе ... нет причин для удаления методов, отличных от того, чтобы экземпляр не ответил на них. И какова бы ни была причина этого, ну, это просто неясно. Уточните, пожалуйста, почему вы хотите сделать это вообще. –