我使用客户端验证gem及其simple_form插件进行客户端验证。我有一个包含ActiveModel::Validations
的自定义模型,并使用simple_form来填充它。
<%= simple_form_for @solution, :validate => true, :url => solve_problem_path, :html => { :class => 'form-horizontal' } do |f| %>
<% @solution.fields.each do |label| %>
<%= f.input label, :validate => { :presence => true } %>
<% end %>
<div class="form-actions">
<%= f.submit 'Solve', :class => 'btn btn-primary' %>
</div>
<% end %>
自定义模型:
class Solution < OpenStruct
include ActiveModel::Validations
validate do
@table.each do |key, val|
errors.add(key, :blank) if val.blank?
end
end
def fields
@table.keys
end
end
但客户端验证不起作用(服务器端确实)。