Вот ссылка, которая имеет сравнение синтаксиса между Java и C# (даже при том, что это почти идентично, существует несколько различий).
http://www.harding.edu/fmccown/java1_5_csharp_comparison.html
project.update_attributes({:name => row.field('project_name'),
:owner => row.field('project_owner'),
:due_date => row.field('project_due_date')}.reject{|k,v| v.blank?})
attrs = [:name,:owner,:due_date].inject({}) {|res,obj| res[obj] = row.field("project_#{obj}") unless row.field("project_#{obj}").blank? }
project.update_attributes attrs