【发布时间】:2015-04-27 22:09:11
【问题描述】:
我有一个很大的Project 模型,我使用许多选项卡来显示表单的不同部分。
想法:每个选项卡为我的模型重新组合字段的特定子集,如果有错误,我想用红色突出显示选项卡的标题。
嵌套关联非常简单,因为我只需要检查object.errors[:association].any?
但是对于所有其他领域,这将是非常乏味的
object.errors[:name] or object.errors[:start_date] or object.error[:end_date]...
有没有办法将一些错误组合在一起?如果:name, :start_date...中有错误,则以下内容应返回true...
object.errors[:basic_params].any?
在我的 HTML 中是这样的
<ul class="nav nav-tabs" role="tablist">
<li><a href="#tab-summary" data-toggle="tab">Résumé</a></li>
<li><a href="#tab-echanges" data-toggle="tab"
<%= 'class="text-danger"'.html_safe if @etude.errors[:echanges].any? %>>Echanges</a>
</li>
<li><a href="#tab-params" data-toggle="tab"
<%= 'class="text-danger"'.html_safe if @etude.errors[:basic_params].any? %>>Paramètres</a>
</li>
<li><a href="#tab-phases" data-toggle="tab"
<%= 'class="text-danger"'.html_safe if @etude.errors[:phases].any? %>> Phases</a>
</li>
<li><a href="#tab-candidatures" data-toggle="tab"
<%= 'class="text-danger"'.html_safe if @etude.errors[:competences].any? %>> Candidatures</a>
</li>
同时我知道我可以做这样的事情,但我真的很想有一些错误分组系统。
[:name, :start_date, :end_date].each do |field|
return true if object.errors.include?(field)
end
【问题讨论】:
-
你的意思是喜欢这个宝石:github.com/adzap/grouped_validations?
-
他妈的。是的,一点没错。 gem 已经很老了,但我相信它仍然可以与 Rails 4 一起使用?如果是,那么您可以添加一个正确的答案,我将标记为已接受的解决方案。
-
哎哟。根据问题,它与 rails 4.1+ 不兼容
-
呃,花了我一段时间,但设法让它适用于 rails 4.1+。 github.com/BroiSatse/grouped_validations。或者,您可以查看改革者 gem - 它是 Rails 中一种新的趋势架构的一部分,称为开拓者。可能对你有用。
-
忘记添加:分支名称
rails_4.1
标签: ruby-on-rails ruby ruby-on-rails-4 error-handling