javascript - 如何在 JS 警报标签中引用 ruby 代码
问题描述
我是 JS 新手,想知道是否有人可以帮我解决这个警报?
<% if @candy.errors %>
<%= javascript_tag do %>
alert('<%= @candy.errors.full_messages %>')
<% end %>
<% end %>
这就是警报中出现的所有内容:[]
解决方案
<% if @candy.errors %>
将始终返回一个真实值。它返回的值是ActiveModel::Errors
. 说实话,我的意思是它永远不会返回 false 或 nil,因此您的警报将始终显示......即使@candy 没有错误。
.any?
如果没有错误,您需要添加以返回 false。
<% if @candy.errors.any? %>
如果我对您正在使用的没有错误的假设@candy
是正确的,那么任何时候都不应该显示警报?被添加。
要手动向@candy 添加错误,请在<% if @candy.errors.any? %>
...之前添加此行
<% @candy.errors.add :base, "Test" %>
如果弹出警报,那么问题只是@candy
没有错误,并且您的调用@candy.errors.full_messages
正确返回了一个空数组。
推荐阅读
- c# - 当我要从我的 c# 代码运行 p4 (Perforce) 命令时,proc.StandardOutput.ReadLine() 返回空字符串
- ecdsa - libsodium 的密钥包含公钥?
- java - JpaRepository 未将数据传递到列表中
- vue.js - 使用 webpack 和 style-resource-loader 在 vue-components 中注入全局变量
- python - 如何在 PULP python 中构造一个复杂的约束
- sql - 标记每个用户达到的金额阈值
- c# - 计算屏幕空间中的对象位置 - 相机画布
- sql-server - 如果表名始终为真,是否应该包含描述符?
- php - 需要在购物车中计算运费 - 但前提是其中有实物产品
- python - 将列表拆分为多个列表 - 取决于元素索引