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

met*_*hyl 0 ruby-on-rails

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

[:first_name, :last_name, :city]
Run Code Online (Sandbox Code Playgroud)

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

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

# 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
Run Code Online (Sandbox Code Playgroud)

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

fl0*_*00r 5

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