【问题标题】:Does rails 3 give options to add filter inside model like validations?rails 3 是否提供了在模型内部添加过滤器的选项,例如验证?
【发布时间】:2012-08-19 17:06:31
【问题描述】:

示例案例-如何添加过滤器以去除所有 html 标签(此代码不起作用,只是我需要获取的伪代码):

class Person < ActiveRecord::Base
  validates :name, :presence => true
  #psedocode:
  **filters:name,:strip_tags=>true**
end

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 filter ruby-on-rails-3.2 rails-models


    【解决方案1】:

    是的,ActiveRecord 有一堆callbacks,您可以利用这些callbacks,例如 before_save、before_validation 等。您可以这样做:

    class Person < ActiveRecord::Base
      before_save :strip_tags
    
      private
    
      def strip_tags
        self.name = name.gsub(TAGS, '')
      end
    end
    

    更多信息在Rails guide on ActiveRecord callbacks

    【讨论】:

    • 实际过滤名称的方式取决于您。如果您有关于过滤内容的具体问题,我会提出一个不同的问题,因为这样您会得到更好的答案。
    • (干代码问题)如何在一个地方为所有模型定义strip_tags?
    • 将其放入一个模块中,并将其包含在您想要的模型中。
    猜你喜欢
    • 2020-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    相关资源
    最近更新 更多