2013-03-31 59 views
0

使用Rails。我曾經在一個模型如下:保存前按摩多個屬性

before_save :strip_tags 

private 

def strip_tags 
    self.name = ActionController::Base.helpers.strip_tags(self.name) 
    self.description = ActionController::Base.helpers.strip_tags(self.description) 
end 

有什麼更好的方式來重構這個除了把這些屬性在數組中,並運行它們的循環?

回答

0

你可以嘗試這給了一大堆更多的線路,當的屬性設置(使用的是before_save因此,如果您需要在您的驗證HTML標記,這將不起作用)改變以下。

def name=(string) 
    write_attribute :name, strip_tags(string) 
end 

def description=(string) 
    write_attribute :description, :strip_tags(string) 
end 

private 

def strip_tags(string) 
    ActionController::Base.helpers.strip_tags string 
end