我有一个Message and Source模型,如下所示:
class Message < ActiveRecord::Base
has_many :sources
accepts_nested_attributes_for :sources, :allow_destroy => true, :reject_if => proc{|s| s[:href].blank?}
end
class Source < ActiveRecord::Base
belongs_to :outgoing_message
validates_presence_of :href
end
当我提交表单(使用form_for
和fields_for
构建)时,它会过滤掉任何带有空白href的新来源。但我想要的是它删除任何已将其href设置为空白的现有源。有没有一种简单的方法可以做到这一点?
答案 0 :(得分:1)
您好Message
模型中的内容,您可以添加validates_associated :sources
如果您需要清除数据库中空白Message
的所有:href
记录,然后再保存新记录,则可以在控制器中编写
before_filter :some_filter, :only=>[:form_action]
...
def some_filter
Source.delete_all("href = '' OR href IS NULL")
end