Ruby on Rails - 嵌套模型表单错误消息

时间:2014-03-14 02:44:36

标签: ruby-on-rails ruby

我有一个这样的表格

<%= form_for @checkout_form, url: checkout_path(@checkout_form), html: {class: 'details-form', method: :put} do |f| %>
    <%= f.fields_for :billing_address do |builder| %>
      <% error_class = @checkout_form.billing_address.errors[:phone].any? ? 'error' : '' %>
      <%= builder.text_field :phone, class: "text #{error_class}" %>
    <% end %>
<% end %>

除错误类外,一切正常。我不确定如何在该上下文中抓取特定字段的错误。

如果我这样尝试,我会得到

undefined method `errors' for nil:NilClass

2 个答案:

答案 0 :(得分:0)

以下是您的资源:How to change the default rails error div "field_with_errors"

根据我的理解,错误的表单字段用这个div包装:<div class="field_with_errors"></div> - 如果你只是想为元素显示不同的样式(没有消息),你为什么不在你的CSS?

#app/stylesheets/application.css
.field_with_errors input { border: 1px solid #ff0; }

答案 1 :(得分:0)

错误消息告诉您@checkout_form.billing_address为零, 因为它是&#34;错误&#34;的唯一位置叫做。

如果它为零,则不能附加错误字符串。

您需要检查控制器和型号。