Как вы запускаете блок "do" в модели Rails, все еще перечисляя: зависимый?

Итак, у меня есть модель User, которая: has_many других моделей, таких как документы, видео, сообщения и тому подобное. Мой вопрос возникает, когда я выполняю блок "do" из модели User следующим образом:

has_many :posts do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end

Это позволяет мне вызывать что-то вроде user.posts.recent, чтобы найти только те сообщения, которые связаны с пользователем. Имея это в виду, как я могу все еще добавить: зависимый =>: уничтожить или: зависимый =>: удалить_все к этой ассоциации? Все, что я до сих пор пробовал, ошибалось.

2 ответа

Решение

Похоже, вы должны взглянуть на использование named_scope.

Нет причин, по которым вы должны иметь блокировку действий против вашей ассоциации.

Вы должны превратить этот недавний метод в именованную область видимости, и затем вы можете добавить: зависимый => уничтожить и т. Д.

Удачи!

Это должно работать просто отлично AFAIK:

has_many :posts, :dependent => :destroy do
    def recent
      find(:all, :order => 'created_at desc', :limit => 12)
    end
  end
Другие вопросы по тегам