首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试将现有属性复制到我的db中的新条目时出现奇怪的保存错误

尝试将现有属性复制到我的db中的新条目时出现奇怪的保存错误
EN

Stack Overflow用户
提问于 2012-03-12 00:29:16
回答 1查看 130关注 0票数 0

控制器(tce_params_controller)

代码语言:javascript
复制
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)

代码语言:javascript
复制
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

视图

代码语言:javascript
复制
=link_to "Clone", clone_test_group_path(test_group), :method => :clone, :class => :tce_param_sets

路由

代码语言:javascript
复制
map.connect '/tce_param_sets/:id/clone', :controller => "tce_param_sets", :action => "clone"

当我运行这个程序时,我看到一个错误:“

NoMethodError中的Tce param setsController#clone

未定义的用于#的“保存”方法(表不存在)

/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需要脚本/服务器:3

请求

参数:

{“id”“=>”3“}

显示会话转储

响应

标题:

{“内容-类型”“=>”、“缓存-控制”=>“无缓存”}

使用我得到的代码

处理TceParamSetsController#clone ( 127.0.0.1在2012-03-12 09:36:37)获取参数:{" id "=>"2"} TceParamSet Load (1.5ms)从"tce_param_sets“选择*,其中”tce_param_sets“(”tce_param_sets“)警告:不能大量分配这些受保护的属性:id (0.3ms)开始TceParamSet加载(0.8ms)从"tce_”中选择"tce_param_sets".idparam_sets“WHERE”("tce_param_sets"."name“= 'Perf: 14520 -Fairherm4.00(最新)-PTS6.00(最新TM-4.00分支)- NA Wireline')限制1 SQL (0.4ms)回滚

为什么会发生这种情况?我没有给身份证任何价值,但它是说,我试图分配身份证.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-12 04:06:54

从克隆方法返回的值似乎不是ActiveRecord对象,因此在返回的值上不存在保存方法。此外,模型中的克隆方法似乎有一个循环引用,因为它在它的体内调用您的方法“克隆”。所以我不知道这到底是怎么回事。

首先,确保返回值确实是一个ActiveRecord对象,并考虑使用"super“调用ruby对象的克隆方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9660355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档