我需要查看模型字段列表,如下所示:
[: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
我希望这段代码能很好地说明我的问题。
答案 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'这是空白'?