Ruby on rails 当模型未保存时在客户端上获取错误文本
我使用的是Hyperstack.org框架,因此使用的是Opal编译的Ruby代码。Hyperstack与Rails的集成在客户机上创建了一些模型的表示,我对响应中的错误验证有疑问 当使用验证器保存模型时,当其中一个验证器被触发时,我无法在promise响应中获得完整的错误消息 在此代码中:Ruby on rails 当模型未保存时在客户端上获取错误文本,ruby-on-rails,ruby,reactjs,opalrb,hyperstack,Ruby On Rails,Ruby,Reactjs,Opalrb,Hyperstack,我使用的是Hyperstack.org框架,因此使用的是Opal编译的Ruby代码。Hyperstack与Rails的集成在客户机上创建了一些模型的表示,我对响应中的错误验证有疑问 当使用验证器保存模型时,当其中一个验证器被触发时,我无法在promise响应中获得完整的错误消息 在此代码中: @User.save(validate: true).then do |result| if result[:success] puts 'successs' m
@User.save(validate: true).then do |result|
if result[:success]
puts 'successs'
mutate @open = false
else
result[:models].each do |response_model|
puts "response_model.errors.class = #{response_model.errors.class}" #ActiveModel::Errors
puts "response_model.errors.full_messages = #{response_model.errors.full_messages}" #nothing puts
end
end
第一个put返回#ActiveModel::Errors
,但我似乎无法使用该模型的方法
我可以看到这方面的测试:所以我希望这是可行的,一定是我
另外,我注意到,对promise的JSON响应实际上包含错误消息:
{
"success" => false, "saved_models" => [
[227154, "User", {
"id" => 48,
"first_name" => "ds",
"last_name" => nil,
"email" => nil,
"image_src" => nil,
"date_of_birth" => nil,
"is_admin" => false,
"is_female" => false,
"is_enabled" => true,
"created_at" => "2019-03-23T12:29:05.728Z",
"updated_at" => "2019-03-23T12:29:05.728Z"
}, {
"last_name" => ["can't be blank"]
}]
], "message" => "HyperModel saving records failed!", "models" => [ < User: 0x37752(0x37750)[errors {
"last_name" => ["can't be blank"]
}] > ]
}
{
“成功”=>false,“保存的模型”=>[
[227154,“用户”{
“id”=>48,
“名字”=>“ds”,
“姓氏”=>无,
“电子邮件”=>无,
“image_src”=>nil,
“出生日期”=>零,
“is_admin”=>false,
“是女性”=>错误,
“是否启用”=>true,
“创建于”=>“2019-03-23T12:29:05.728Z”,
“更新时间:2019-03-23T12:29:05.728Z”
}, {
“姓氏”=>[“不能为空”]
}]
],“消息”=>“超模型保存记录失败!”,“模型”=>[[“不能为空”]
}] > ]
}
感谢您的帮助 看起来您使用
full\u messages
方法在HyperModel中遇到了一个bug。AFAIK所有其他方法在您的示例中都可以很好地工作
如果您确实需要
完整消息
我不理解作为块参数得到的结果
对象,那么您可以使用一个变通补丁。是否应该保存的是self
对象?它是否响应[]
?注意@User
应该是@User
,因为Ruby是区分大小写的,方法和变量名应该是小写的@User
会让人对类的User
产生混淆。我应该说谢谢你们的回复,但这是通过Hyperstack框架编译的客户端Opal代码。@User是一个惯例,用于证明这是一个传递到此组件的不可变参数(在本例中,它是一个模型,实际上是可变的-证明规则的异常)。