before_destroy中的问题

时间:2014-06-25 07:11:23

标签: ruby-on-rails ruby

我已尝试为模型添加before_destroy,但我遇到了一些问题,我无法理解问题出在哪里。模型ReturnCode的销毁是从其他模型Command调用。在{{ 1}}有Command ReturnCode列,如何解决问题。我使用的是Rails 2.3.12

return_code_id

models/Command

after_save :delete_old_private_return_code def delete_old_private_return_code if !self.return_code_id_was.nil? && self.return_code_id_was != self.return_code_id return_code = ReturnCode.find(self.return_code_id_was) if !return_code.nil? && return_code.private? return_code.set_audit_key(self.command_set.audit_key, self.command_set.audit_area) return_code.return_code_texts.each do|text_param| text_param.set_audit_key(self.command_set.audit_key, self.command_set.audit_area) end return_code.destroy end end

models/ReturnCode

attr_protected :created_at, :updated_at, :shipped_data acts_as_taggable_on :tags before_validation :strip_spaces has_many :commands has_many :return_code_texts, :dependent => :destroy accepts_nested_attributes_for :return_code_texts, :allow_destroy => true before_save :sort_action_list before_save :set_audit_parent before_update :audit_line_number before_destroy :set_audit_parent before_destroy :audit_line_number has_one :record_level_security, :as => 'securable', :dependent => :destroy validates_presence_of :name, :if => Proc.new{|return_code| return_code.shared?} validates_length_of :name, :maximum => 20, :allow_nil => true, :if => Proc.new{|return_code| return_code.shared?} validates_uniqueness_of :name, :case_sensitive => false, :if => Proc.new{|return_code| return_code.shared?} validates_presence_of :description, :if => Proc.new{|return_code| return_code.shared?} validates_length_of :description, :maximum => 50, :allow_nil => true, :if => Proc.new{|return_code| return_code.shared?} validate :validate_values_matching validate :validate_action_list validate :validate_text_list validate :cannot_change_standard_name def audit_line_number command = Command.find_by_return_code_id(id) Audit.add_audit_changes({"line_number" => [command.line_number, command.line_number]}) end

Error

0 个答案:

没有答案