检查字段列表是否为空白的优雅方法

时间:2011-07-17 17:21:03

标签: ruby-on-rails

我需要查看模型字段列表,如下所示:

[:first_name, :last_name, :city]

如果填写了所有这些字段。

丑陋的代码看起来像这样:

# user.rb
def update_profile_completed
    helper = true 
    field_list.each {|field| helper = false if self[field].blank?}
    self.update_attributes(:profile_completed => true) if helper
end

我希望这段代码能很好地说明我的问题。

2 个答案:

答案 0 :(得分:5)

def update_profile_completed
  self.update_attributes(:profile_completed => true) unless [:first_name, :last_name, :city].any?{|f| self[:f].blank? }
end

答案 1 :(得分:0)

我使用上一个答案进行自定义验证,然后发现它在nil上失败。我切换到了

[:first_name, :last_name, :city].any?{|f| !self[f].present? }

因为它可以在空白或零上工作。注意!因为你现在要问的是这个“不存在”#39; vs'这是空白'?