Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 未定义的方法`find#u by';使用'model_class:false'时用于nil:NilClass`_Ruby On Rails_Neo4j.rb - Fatal编程技术网

Ruby on rails 未定义的方法`find#u by';使用'model_class:false'时用于nil:NilClass`

Ruby on rails 未定义的方法`find#u by';使用'model_class:false'时用于nil:NilClass`,ruby-on-rails,neo4j.rb,Ruby On Rails,Neo4j.rb,nil:NilClass的未定义方法“find_by” 提取源(第38行附近): 我正在修改scaffold生成器,以自动处理:关系,因为有许多,并向用户端添加迭代器。 出于某种原因,所有生成的具有多个关系的类都存在此问题 在创建或更新时,不会创建记录(/modified),而是显示此错误 为了更好地衡量,以下是表单参数,尽管我在其中输入的内容无关紧要: { "utf8"=>"✓", "_method"=>"patch", "authentici

nil:NilClass的未定义方法“find_by”

提取源(第38行附近):

我正在修改scaffold生成器,以自动处理
:关系,因为
有许多
,并向用户端添加迭代器。 出于某种原因,所有生成的具有多个关系的类都存在此问题

在创建或更新时,不会创建记录(/modified),而是显示此错误

为了更好地衡量,以下是表单参数,尽管我在其中输入的内容无关紧要:

{
 "utf8"=>"✓",
         "_method"=>"patch",
         "authenticity_token"=>"",
         "tag"=>{"name"=>"Downloadable",
         "normalized_name"=>"downloadable", 
         "tagged"=>[""]},
 "commit"=>"Update Tag",
 "id"=>"1604f0d6-4b8c-4305-8858-f2db53b1947d"
}
一些相关的东西,但我不确定为什么:

def tag_params
  params.require(:tag).permit( :name, :normalized_name, tagged: [])
end
如果我取消了为
标记数组的功能,它将停止错误。当然,因为它是一个
有很多
,所以我想要一个数组

编辑:在执行操作之前,我查看了来自的提示

def set_tag
  @tag = Tag.find(params[:id])
end
编辑:在其他项目上工作了一段时间后,我又回到了这个话题,但它仍然困扰着我

以下是完整的输出(注意:来自的建议没有更改错误):

2016-07-16 22:23:55-0300时127.0.0.1的“/tags/e4c42c16-f547-4cc4-8d50-cbf85650563a”启动补丁 由TagsController处理#更新为HTML 参数:{“utf8”=>“✓", "真实性令牌“=>”b5EuyanawfG7lSCTt6aC1jAn8k66epnr5//keeic7gkhw6n4bwwjkehw4ob87n2ygpwujg2ynzwlzhwcvqepq=>,“tag”=>{“name”=>“Tag2”,“taged”=>[“”],“commit”=>“updatetag”,“id”=>“e4c42c16-f547-4c4-8d50-cbf85063a” 标记4ms MATCH(n:`Tag`),其中(n.uuid={n_uuid})返回n个顺序,按n.uuid LIMIT{LIMIT_1}{124;{:n_uuid=>“e4c42c16-f547-4cc4-8d50-cbf856550563a”,:LIMIT_1=>1} 标记#标记3ms匹配(标记6),其中(ID(标记6)={ID#u标记6})匹配(标记6)6} 在35毫秒内完成500个内部服务器错误 NoMethodError(未定义nil:NilClass的“find_by”方法): app/controllers/tags_controller.rb:37:in'update' rescues/layout中的Rendering/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues/diagnostics.html.erb Rendering/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u source.html.erb Rendered/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u source.html.erb(5.1ms) Rendering/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u trace.html.erb Rendered/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u trace.html.erb(2.5ms) Rendering/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u request\u and\u response.html.erb Rendered/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues//u request\u and\u response.html.erb(2.7ms) rescues/layout中的Rendered/Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action\u dispatch/middleware/templates/rescues/diagnostics.html.erb(90.9ms)
编辑:它在一个相关项目中咬了我一口,我发现它发生在:

  • 关系是
    有许多
    模型类
  • 控制器允许参数作为数组,例如
    :taged=>[]
  • 提交的表单可以创建新节点,也可以在提供该参数的同时更新现有节点

在控制器中。。。检查更新前执行的操作(控制器顶部) 检查一下你的爱人

{
 "utf8"=>"✓",
         "_method"=>"patch",
         "authenticity_token"=>"",
         "tag"=>{"name"=>"Downloadable",
         "normalized_name"=>"downloadable", 
         "tagged"=>[""]},
 "commit"=>"Update Tag",
 "id"=>"1604f0d6-4b8c-4305-8858-f2db53b1947d"
}

有没有。。在该操作中(在“查找方式”中)需要哪个选项?

首先使用此空格检查它是否为空?您正在尝试更新
nil
对象,首先需要在更新方法中找到该对象,然后更新它。您的
@tag
在哪里定义?@vipin-不确定您的意思?@praveshkhattri-
@tag
应该是使用提交的
id
的实例。更新之前,
@tag
是正确的,但是由于某种原因,
如果@tag.update(tag_params)
请尝试在您的方法中打印
@tag
,并在rails控制台中检查它。
Started PATCH "/tags/e4c42c16-f547-4cc4-8d50-cbf85650563a" for 127.0.0.1 at 2016-07-16 22:23:55 -0300
Processing by TagsController#update as HTML
  Parameters: {"utf8"=>"✓", "authenticity_token"=>"b5EuyanawfG7lSCTt6aC1jAn8k66epnr5//KeeiC7GkhW6n4BWWJKeHW4OB87N2YGPwuJG2ynZwlzhWcvbQepQ==", "tag"=>{"name"=>"Tag2", "tagged"=>[""]}, "commit"=>"Update Tag", "id"=>"e4c42c16-f547-4cc4-8d50-cbf85650563a"}
 Tag 4ms MATCH (n:`Tag`) WHERE (n.uuid = {n_uuid}) RETURN n ORDER BY n.uuid LIMIT {limit_1} | {:n_uuid=>"e4c42c16-f547-4cc4-8d50-cbf85650563a", :limit_1=>1}
 Tag#tagged 3ms MATCH (tag6) WHERE (ID(tag6) = {ID_tag6}) MATCH (tag6)<-[rel1:`CONCEPTUAL_TAG`]-(result_tagged) DELETE rel1 | {:ID_tag6=>6}
Completed 500 Internal Server Error in 35ms



NoMethodError (undefined method `find_by' for nil:NilClass):

app/controllers/tags_controller.rb:37:in `update'
  Rendering /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.1ms)
  Rendering /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.5ms)
  Rendering /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (2.7ms)
  Rendered /Users/josh/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/actionpack-5.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (90.9ms)
{
 "utf8"=>"✓",
         "_method"=>"patch",
         "authenticity_token"=>"",
         "tag"=>{"name"=>"Downloadable",
         "normalized_name"=>"downloadable", 
         "tagged"=>[""]},
 "commit"=>"Update Tag",
 "id"=>"1604f0d6-4b8c-4305-8858-f2db53b1947d"
}