1

クライアント側の検証には client-side-validation 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

ただし、クライアント側の検証は機能しません (サーバー側は機能します)。

4

0 に答える 0