контроллер (tce_params_controller)
def clone
tce_params = TceParamSet.find(params[:id])
puts "This is tce_params"
puts tce_params
cloned_tce_params = tce_params.clone
puts "This is cloned_tce_params"
puts cloned_tce_params
if @saved == true
flash[:notice] = 'Item was successfully cloned.'
redirect_to edit_tce_param_set_path(@cloned_tce_params)
else
flash[:notice] = 'ERROR: Item can\'t be clone'
puts cloned_tce_params.errors
redirect_to system_data_path
end
end
Модель (TceParamSet)
def clone
cloned_tce_params = TceParamSet.new(self.attributes)
puts "this is attributes in model"
puts cloned_tce_params.attributes
cloned_tce_params.id = nil
if cloned_tce_params.save
cloned_tce_params = cloned_tce_params.name + "(cloned)"
@saved = true
else
@saved = false
end
return cloned_tce_params
end
вид
=link_to "Clone", clone_test_group_path(test_group), :method => :clone, :class => :tce_param_sets
Маршрут
map.connect '/tce_param_sets/:id/clone', :controller => "tce_param_sets", :action => "clone"
Когда я запускаю это, я получаю сообщение об ошибке "1013 *
NoMethodError в наборе параметров TceController # clone
неопределенный метод `save 'для # (таблица не существует)
/usr/local/rvm/gems/ruby-1.8.7-p357@rails238/gems/rails-2.3.8/lib/commands/server.rb: 111
/usr/local/rvm/rubies/ruby-1.8.7-p357/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in gem_original_require'
/usr/local/rvm/rubies/ruby-1.8.7-p357/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in
require '
скрипт / сервер: 3
Запрос
Параметры:
* * +1025 { "ID" => "3"} * 1 026 *
Показать дамп сеанса
Ответ
Заголовки:
{ "Content-Type" => "",
"Cache-Control" => "нет кэша"}
используя этот код я получаю
Обработка клона TceParamSetsController # (для 127.0.0.1 в 2012-03-12 09:36:37) [GET]
Параметры: {"id" => "2"}
Загрузка TceParamSet (1,5 мс) SELECT * FROM "tce_param_sets" WHERE ("tce_param_sets". "Id" = 2)
ВНИМАНИЕ: Не удается назначить массово эти защищенные атрибуты: id
SQL (0,3 мс) НАЧИНАЕТСЯ
Загрузка TceParamSet (0,8 мс) SELECT "tce_param_sets" .id FROM "tce_param_sets" WHERE ("tce_param_sets". "Name" = 'Perf: 14520 - Fairshare TM 4.00 (последняя) - PTS 6.00 (последняя ветвь TM-4.00) - NA Wireline ') ПРЕДЕЛ 1
SQL (0,4 мс) ROLLBACK
Почему это происходит? Я не даю id никакого значения, но он говорит, что я пытаюсь присвоить id ...