Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.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 “不明白为什么”;预加载/预加载;在ROR中不工作?_Ruby On Rails - Fatal编程技术网

Ruby on rails “不明白为什么”;预加载/预加载;在ROR中不工作?

Ruby on rails “不明白为什么”;预加载/预加载;在ROR中不工作?,ruby-on-rails,Ruby On Rails,我不明白为什么“域”被多次查询,尽管我在控制器中使用了渴望的加载(像服务器,但“服务器”只被查询了一次) 代码: 在控制器中: @problems = Problem.all.eager_load(:serverity, :domain, :nation, :status,:urgency,:user, :works).order(start_time: :desc) 在模型中: class Problem < ActiveRecord::Base be

我不明白为什么“域”被多次查询,尽管我在控制器中使用了渴望的加载(像服务器,但“服务器”只被查询了一次)

代码:

在控制器中:

       @problems = Problem.all.eager_load(:serverity, :domain, :nation,  :status,:urgency,:user, :works).order(start_time: :desc)
在模型中:

    class Problem < ActiveRecord::Base
     belongs_to :serverity
     belongs_to :urgency
     belongs_to :nation
     belongs_to :status
     belongs_to :user  
     belongs_to :cause
     belongs_to :domain
     has_many   :works
     has_many   :attachments, :dependent => :destroy   
   end

请显示
问题的代码
。什么是
domian.parent
?我已更新了问题。领域就是祖先。域1->域2->域3->域4。domain4.parent是domain3,依此类推。这些是您的查询。你可以做
{:domain=>:parent}
,但是你可能有多个祖先这只会对父母有帮助。我补充说,但是父母/孩子是祖先的方法,而不是关联:(.如何预加载孩子。
<% @problems.each do |problem| %>
       <td>
    <%= link_to problem.name, problem, :method => :get %></td>
    <td>
      <% if problem.domain.root? %>
      <%= problem.domain.name %>
      <%else%>
      <%= problem.domain.parent.name %>
      <%end%>
    </td> 
    <td><%= problem.serverity.name %></td>
<%>
  Processing by ProblemsController#index as HTML                                                                           
  [1m[36mUser Load (15.6ms)[0m  [1m[34mSELECT  `users`.* FROM `users` WHERE          `users`.`id` = 1 LIMIT 1[0m              
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1[0m  [["id", 1], ["LIM
  Rendering problems/index.html.erb within layouts/application                                                             
  [1m[35m (78.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON 
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON `
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON `
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON `
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON `
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(DISTINCT `problems`.`id`) FROM `problems` LEFT OUTER JOIN `serverities` ON `
  [1m[35mSQL (31.2ms)[0m  [1m[34mSELECT `problems`.`id` AS t0_r0, `problems`.`name` AS t0_r1, `problems`.`start_time` 
  [1m[36mDomain Load (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 3 LIMIT 1[0m       
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(*) FROM `works` WHERE `works`.`problem_id` = 238 AND `works`.`status` = 'hoà
  [1m[36mDomain Load (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m       
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[35m (0.0ms)[0m  [1m[34mSELECT COUNT(*) FROM `works` WHERE `works`.`problem_id` = 239 AND `works`.`status` = 'hoà
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],
  [1m[36mCACHE (0.0ms)[0m  [1m[34mSELECT  `domains`.* FROM `domains` WHERE `domains`.`id` = 6 LIMIT 1[0m  [["id", 6],