【发布时间】:2016-03-31 06:15:39
【问题描述】:
我有上课顺序,可以内容条目。并且每个条目可以是复杂类型,并且由另一个条目组成。
class Order < ActiveRecord::Base
accepts_nested_attributes_for :entries
end
class Entry < ActiveRecord::Base
accepts_nested_attributes_for :members, allow_destroy: true
end
在表单中,我使用 fields_for 在表单中生成了 rails 字段
<input autocomplete="off" class="string required form-control" id="order_entries_attributes_1459329286687_members_attributes_1459329286739_title" name="order[entries_attributes][1459329286687][members_attributes][1459329286739][title]" placeholder="Наименование" type="text">
所以,我提交了一份订单表格,例如有 2 个条目,5 个成员有一些验证错误(2 个成员没有标题),然后它传递给控制器
class OrdersController
def update
if @order.update(order_params)
render json: @order
else
render json: @order.errors, status: :unprocessable_entity
end
end
end
它还给我这个
{"entries.members.title":["cant be blank"]}
问题是我找不到其中的哪个条目和哪个成员,存在验证错误,这就是为什么我不能突出显示该字段的原因。此外,它合并了类似的错误。这就是问题。
在提交时,我传递了唯一索引(在名称属性中),rails 正确地使用它来创建嵌套模型,如果错误响应包含这个索引会很好。
有没有其他方法可以从服务器返回漂亮的索引错误,并使用 rails 作为 json 的 api 而不会痛苦?
【问题讨论】:
-
它在 rails 5 中解决了!
-
你有关于 Rails 5 如何解决这个问题的文档的 URL 吗?
-
在文档中找不到,但这里是简单的指南blog.bigbinary.com/2016/07/07/…
-
谢谢@justed_ss!非常感谢。
标签: ruby-on-rails json ruby-on-rails-4 rubygems