Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.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
Mysql Ruby2和Rails4查询在开发时返回结果,但在生产时返回nil_Mysql_Ruby_Ruby On Rails 4 - Fatal编程技术网

Mysql Ruby2和Rails4查询在开发时返回结果,但在生产时返回nil

Mysql Ruby2和Rails4查询在开发时返回结果,但在生产时返回nil,mysql,ruby,ruby-on-rails-4,Mysql,Ruby,Ruby On Rails 4,我们正在用RubyonRails编写一个应用程序,我们遇到了一个奇怪的问题。 当我们在开发中运行应用程序时,查询返回的结果很好。 当我们在生产环境中运行应用程序时,查询返回nil,即使数据库中有记录也是如此。我直接通过MySQL服务器查询,所以我知道记录在那里 有什么想法吗?我已经包括了错误、迁移、模型、控制器和视图代码 我得到的错误是 undefined method `each' for nil:NilClass 第19行周围的提取源: @count = 1

我们正在用RubyonRails编写一个应用程序,我们遇到了一个奇怪的问题。 当我们在开发中运行应用程序时,查询返回的结果很好。 当我们在生产环境中运行应用程序时,查询返回nil,即使数据库中有记录也是如此。我直接通过MySQL服务器查询,所以我知道记录在那里

有什么想法吗?我已经包括了错误、迁移、模型、控制器和视图代码

我得到的错误是

undefined method `each' for nil:NilClass
第19行周围的提取源:

          @count = 1
          if @leadsHot != nil || @leadsHot != ''
          @leadsHot.each do |lead| %>
          <tr role="row" <% if @count / @count == 0 %>class="gradeA even"<% else %> class="gradeA odd" <% end %>>
          <td class="sorting_1"><%= lead.category.to_s %></td>
          <td><%= lead.fname.to_s %> <%= lead.l_name.to_s %></td>
迁移文件

  class CreateLeads < ActiveRecord::Migration
  def up
    create_table :leads do |t|
      t.column :category, :string
      t.column :patent_status, :string
      t.column :over_eighteen, :string
      t.column :salute, :string
      t.column :fname, :string
      t.column :m_initial, :string
      t.column :l_name, :string
      t.column :address, :string
      t.column :address1, :string
      t.column :city, :string
      t.column :state, :string
      t.column :zip,:string
      t.column :phone, :string
      t.column :cell_phone, :string
      t.column :fax, :string
      t.column :email, :string
      t.column :user_id, :integer
      t.column :source, :string
      t.column :lead_source_id, :integer
      t.column :hot, :boolean, :null => false, :default => 0
      t.column :comments, :text
      t.column :active, :boolean
      t.timestamps null: false
    end
  end

  def down
    drop_table :leads
  end
end
模型

控制器

class Backoffice::SalesController < ApplicationController
  include LogIt
  include LeadManagement
  include SalesModule
  include TableDataMethods
  def dashboard
    @leadsAll = Lead.all().where("hot=0 AND active=1") #getvalidleads
    @leadsHot = Lead.all().where("hot=1 AND active=1")  #getHotLeads
    @leadsDOA = Lead.all().where("active=0") #getRecentDeadLeads
    @curClients = basicCurrentClientsTable
    if @curClients == nil
      @curClients = "<tr><td colspan='7'>No Clients Available</td></tr>"
    end
    if @leadsHot == nil
      @leadsHot = "<tr><td colspan='7'>No Hot Leads Available</td></tr>"
    end
  end
end
看法

rails控制台生产结果

   2.2.1 :004 > Lead.all().where(active: true, hot: true)
  Lead Load (0.8ms)  SELECT `leads`.* FROM `leads` WHERE `leads`.`active` = 1 AND `leads`.`hot` = 1
 => #<ActiveRecord::Relation [#<Lead id: 1, category: "Cars", patent_status: "none", over_eighteen: "Yes", salute: "Mr", fname: "Middleton", m_initial: "Jacksonmade", l_name: "Longtrowsers", address: "303 Springfield Ave", address1: "Apt D", city: "Lancaster", state: "North Carolina", zip: "97055", phone: "(803) 320-7672", cell_phone: "803-320-7672", fax: "", email: "george@betazedsoftwaresolutionsinc.com", user_id: nil, source: "Call In", lead_source_id: nil, hot: true, comments: "sdgsadfasdg", active: true, created_at: "2015-12-10 08:45:59", updated_at: "2015-12-10 08:45:59">, #<Lead id: 2, category: "Cars", patent_status: "Yes", over_eighteen: "Yes", salute: "Mr.", fname: "Furgo", m_initial: "Robert", l_name: "Man", address: "303 Springfield Ave", address1: "Apt D", city: "Lancaster", state: "North Carolina", zip: "97055", phone: "(803) 320-7672", cell_phone: "803-320-7672", fax: "", email: "billing@betazedsoftwaresolutionsinc.com", user_id: nil, source: "Call In", lead_source_id: nil, hot: true, comments: "asdfasdfasdf", active: true, created_at: "2015-12-10 08:52:21", updated_at: "2015-12-10 08:52:21">]> 

如果你说它在dev上有效,那么它通常是愚蠢的。试着检查一下:

连接到数据库,配置 在视图中显示,可能打印对象的调试 查询对象的结果,打印调试
暂时激活调试并检查日志以寻找线索,或者转储数据库,然后在dev中仔细尝试prod dump,如果你说它在dev上工作,那么这通常是愚蠢的。尝试检查:

连接到数据库,配置 在视图中显示,可能打印对象的调试 查询对象的结果,打印调试 临时激活调试并检查日志以获取线索,或者转储数据库,并在dev

查询中仔细尝试prod dump,其中hot=0和active=1取决于某个数据库,因为并非所有数据库都将true和false编码为1或0

按照以下方式编写查询:

Lead.where(hot: false, active: true)
像这样的查询wherehot=0和active=1取决于某个数据库,因为并非所有数据库都将true和false编码为1或0

按照以下方式编写查询:

Lead.where(hot: false, active: true)

运行查询不需要控制器和视图。您能否只显示模型、查询以及在rails控制台生产中运行查询时得到的结果,包括ActiveRecord中与数据库相关的日志输出?我添加了请求的信息。谢谢显然,查询没有返回nil。这是一个条件。我忘记了var==nil与var.nil不一样?所以我的条件是破坏它而不是查询。运行查询不需要控制器和视图。您能否只显示模型、查询以及在rails控制台生产中运行查询时得到的结果,包括ActiveRecord中与数据库相关的日志输出?我添加了请求的信息。谢谢显然,查询没有返回nil。这是一个条件。我忘记了var==nil与var.nil不一样?所以我的条件是破坏它,而不是查询。这样做了,但仍然有相同的问题和错误。谢谢,虽然我更喜欢这种方法:DDid,但仍然有相同的问题和错误。谢谢,尽管我更喜欢这种方法:这实际上帮助我发现了我在上面评论的情况的错误+1并被接受为答案!谢谢你,伙计!这实际上帮助我发现了我在上面评论的情况的问题所在+1并被接受为答案!谢谢你,伙计!
Lead.where(hot: false, active: true)