我编写了以下代码来显示带有manny $scope.dyna = [
{ "name": "parshuram", "age": 24 ,"void": true},
{ "name": "Tejash", "age": 26,"void" : false }
];
<table>
<tbody>
<tr ng-repeat= "test in dyna">
<td>{{test.name}}</td>
<td>{{test.age}}</td>
<!-- I don't want to have to add this, the columns should be added dynamically -->
<td>{{test.void}}</td>
</tr>
</tboody>
</table>
number_field_tag
喜欢这个
如何确保至少有一个字段不为零?
Rails是否提供了一些神奇的功能?
答案 0 :(得分:0)
验证有两个方面:直接在前端使用JavaScript或服务器端模型验证。
Rails没有任何JavaScript功能,您必须自己使用JavaScript,例如。
<script type='text/javascript'>
$('form').submit(function(e) {
var foundQuantity = false;
$('input[type*=quantity]').each(function() {
if ($(this).val() > 0) { foundQuantity = true };
]);
if (!foundQuantity) {
e.preventDefault();
// Display some error somewhere
$('.error-field').html("<div class='alert'>Please select at least one</div>");
}
});
对于服务器端:我看到这是许多型号的组合形式?你有一个拥有怪物的父模型吗?你也可以只使用Rails&#39;验证一个模型,而不是许多模型。如果其中有多个ActiveRecord-Model,我会为任何表单构建一个Form模型,例如:
class MonsterForm
include ActiveModel::Model
attr_accessor :monsters
validate :monster_quantity
def monster_quantity
if monsters.length == 0 || monsters.none?{|m| m.quantity > 0 }
errrors.add(:monsters, "Need to have at least one..."
end
end
end