Направляющие формируют условный обход проверки

DataTable newDt = new DataTable();
//Select indexes
var indexes = dt.Rows.Cast<DataRow>().Select(row => dt.Rows.IndexOf(row));
//Select the columns
var newCols = indexes.Select(i => "Row" + i);
//Add columns
foreach(var newCol in newCols)
{
  newDt.Add(newCol);
}
//Select rows
var newRows = dt.Rows.Cast<DataColumn>().Select(col =>
                                                  {
                                                    row = newDt.NewRow();
                                                    foreach(int i in indexes)
                                                    {
                                                      row[i] = dt.Rows[i][col.Name];
                                                    }
                                                    return row;
                                                  });
//Add row to new datatable
foreach(var row in newRows)
{
  newDt.Add(row);
}
16
задан hacintosh 8 January 2009 в 03:31
поделиться

4 ответа

По-моему, это - лучший способ сделать это:

class FooBar < ActiveRecord::Base
  validates_uniqueness_of :foo, :bar, :unless => :force_submit
  attr_accessor :force_submit
end

тогда в Вашем представлении, удостоверьтесь, что Вы называете отправлять тег как

<%= submit_tag 'Resubmit', :name => 'foo_bar[force_submit]' %>

этот путь, вся логика находится в модели, код контроллера останется таким же.

39
ответ дан 30 November 2019 в 15:35
поделиться

Попробуйте это:

направляющие 2: Model.save(false)
направляющие 3: Model.save(:validate => false)

Это обходит проверки (все они хотя).

10
ответ дан 30 November 2019 в 15:35
поделиться

Не положительный в этом, но Вы могли попытаться добавить attr_accessor к своей модели, чтобы содержать, была ли форма отправлена однажды.

просто добавляют

attr_accessor :submitted

к Вашей модели и проверке на него в Ваших проверках.

2
ответ дан 30 November 2019 в 15:35
поделиться

Можно просто посмотреть на кнопку отправки, чтобы определить, хотите ли Вы выполнить проверки.

def form_method
  case params[:submit]
    when "Submit" 
      'Do your validation here'
    when "Resubmit" 
      'Do not call validation routine'
  end
end
1
ответ дан 30 November 2019 в 15:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: