Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Ассоциации, не работает callback 
:(
    Опции темы
DimanLin
Дата 29.3.2009, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



Контроллер
 News.destroy(params[:id])


Модель:

class News < ActiveRecord::Base
  

  has_one :prevnewsimage, :dependent => :destroy
  has_many :newsimages, :dependent => :destroy, :before_remove => :removenewsimagqe

  validates_presence_of :header, :prevtext, :text
  validates_length_of :header, :maximum => 255

@@onpage = 8
  def self.perpage(page)
    
    offset = (page.to_i * @@onpage) - @@onpage
    self.find(:all, :offset => "#{offset}", :limit => "#{@@onpage}")
  end

def removenewsimagqe(newsimage)
    File.delete("#{RAILS_ENV}/public/newsimage/#{newsimage.name}")
end

def removeprevimages(previmages)
    File.delete("#{RAILS_ENV}/public/newsimage/#{previmages.name}")
end
end


Не могу добиться удаления картинок для модели newsimage.
Все дочерние ассоциации по отношению к News удаляются, а callback(before_remove) для newsimage не вызывается....
А почему? 

Делаю изходя из документации http://guides.rubyonrails.org/association_basics.html
Раздел: 4.5 Association Callbacks
PM MAIL   Вверх
DimanLin
Дата 1.4.2009, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 65
Регистрация: 10.2.2008

Репутация: нет
Всего: нет



Решил проблемму немного подругому но как мне кажется более верным способом.
В документации http://guides.rubyonrails.org/association_basics.html
Раздела 4.5 Association Callbacks
В этом разделе приведён пример использования callback метода:

=================================================
class Customer < ActiveRecord::Base 

      has_many :orders, :before_add => :check_credit_limit  

      def check_credit_limit(order)  
.............................
      end 

end 
=================================================
В моём коде за основу брался этотже пример. Разница была только в типе ассоциативного калбака, в примере :before_add у меня before_remove

has_many :newsimages, :dependent => :destroy, :before_remove => :removenewsimagqe

def removenewsimagqe(newsimage)
    File.delete("#{RAILS_ENV}/public/newsimage/#{newsimage.name}")
end

Вызов метода removenewsimagqe не происходил. Так и не разобрался почему...

Из документации видно, что есть ещё простые колбаки(не ассоциативные).
http://guides.rubyonrails.org/activerecord...lbacks-overview
Сним всё заработало. smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Ruby on Rails"
source777
  • С чего начать? начинаем
  • Документацию смотрим тут
  • Обязательно следуйте правилам Vingrad.
  • Пожалуйста, прочитайте рекомендации по работе в форуме и навигации по Vingrad.
  • Для вставки кодов Ruby используйте тег: [code=ruby]код[/code]. Когда в будущем подсветка синтаксиса для Ruby будет реализована, весь исходных код преобразится.
  • Используйтe чекбокс "Транслит" (возле кнопок кодов), если у Вас нет русских шрифтов.
  • Помните, для каждого вопроса должна быть своя тема.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Ruby On Rails | Следующая тема »


 




[ Время генерации скрипта: 0.0600 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.