是否有更简洁的方法来编写以下代码。当flash [:add_run_error]为零时,我想摆脱指定空字符串的行。
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
答案 0 :(得分:8)
您可以简单地将错误的attr
部分加入。
flash[:add_run_error] = run.errors.map{|attr, msg| "Invalid #{attr}. Follow examples below."}.join('<br/>')
答案 1 :(得分:0)
我会这样做:
unless run.save
add_run_errors = []
run.errors.each do |attr, msg|
add_run_errors << "Invalid #{attr}. Follow examples below."
end
flash[:add_run_error] = add_run_errors.join '<br />'
end
但是没有第一个<br />
- 您可以简单地添加它:
flash[:add_run_error] = '<br /'> + (add_run_errors.join '<br />')