是否有更紧凑的方式来编写此ROR代码?

Law*_*nti 1 ruby ruby-on-rails

是否有更紧凑的方式来编写以下代码.当flash [:add_run_error]为nil时,我想摆脱指定空字符串的行.

unless run.save 
  run.errors.each do |attr, msg|  
    flash[:add_run_error] += '<br/>' if flash[:add_run_error] 
    flash[:add_run_error] = '' unless flash[:add_run_error] 
    flash[:add_run_error] += "Invalid #{attr}.  Follow examples below." 
  end 
end
Run Code Online (Sandbox Code Playgroud)

jdl*_*jdl 8

您可以简单地attr将错误的一部分加在一起.

flash[:add_run_error] = run.errors.map{|attr, msg| "Invalid #{attr}.  Follow examples below."}.join('<br/>')
Run Code Online (Sandbox Code Playgroud)