Ruby on rails Rails-分析嵌套表单关联错误
我尝试使用以下格式的索引键对象显示关联错误:Ruby on rails Rails-分析嵌套表单关联错误,ruby-on-rails,ruby,ruby-on-rails-5,Ruby On Rails,Ruby,Ruby On Rails 5,我尝试使用以下格式的索引键对象显示关联错误: :errors=>{ :questions=>{ 0=>{:title=>"can't be blank"}, 1=>{:title=>"can't be blank"} } } Rails 5提供了一种显示错误索引的方法,但使用的格式如下: questions[0].title, questions[1].title 我的解决方案有点糟糕,就是像这样解析错误响应 def pars
:errors=>{
:questions=>{
0=>{:title=>"can't be blank"},
1=>{:title=>"can't be blank"}
}
}
Rails 5提供了一种显示错误索引的方法,但使用的格式如下:
questions[0].title,
questions[1].title
我的解决方案有点糟糕,就是像这样解析错误响应
def parse_errors
{
errors: {
questions: @post.questions.enum_for(:each_with_index).collect { |question, index|
{
index => question.errors.messages
} unless question.valid?
}.inject({}, :merge).transform_values {|v| v.transform_values &:first }
}.merge!(@post.errors.messages)
}
end
我明白了
{
:errors=>{
:questions=>{
0=>{
:title=>"can't be blank"
},
1=>{
:title=>"can't be blank"
}
},
:"questions.title"=>["can't be blank"],
:title=>["can't be blank"]
}
}
但是我希望下面的结果忽略默认的问题错误消息:“questions.title”=>[“不能为空”],
像这样:
{
:errors=>{
:questions=>{
0=>{
:title=>"can't be blank"
},
1=>{
:title=>"can't be blank"
}
},
:title=>["can't be blank"]
}
}
那么,有没有办法清理这些代码,以便以预期的格式显示帖子和问题的错误
谢谢
分析嵌套表单关联错误
不确定,但您可以通过以下方式删除默认错误消息:
self.errors清除所有错误。清除
self.errors.add
将所有错误消息放回正确/所需的位置@如果你对我的答案感到满意,那么就把它改正过来,投赞成票。