Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.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 .1]: ^ 2014-03-12T09:40:00.602492+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602492+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.599548+00:00应用程序[web.1]:PG::Error:Error:语法错误位于或接近“)” 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html \应用程序浏览器浏览器浏览器浏览器浏览器3814188212292969351\ 70209931602340' 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:ActionView::Template::Error(PG::Error:Error:语法错误在或附近) 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:^ 2014-03-12T09:40:00.600424+00:00应用程序[web.1]:在106ms内完成500个内部服务器错误 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602881+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html\应用程序\应用程序\索引38141882122909096351\ 70209931602340'中 2014-03-12T09:40:00.967239+00:00 heroku[路由器]:at=info method=GET path=/favicon.ico host=floating-castle-4592.herokuapp.com请求\u id=d1fe2f58-7a19-42dc-9ef4-940d4841d822 fwd=“122.167.180.66”dyno=web.1 connect=2ms服务=7ms状态=200字节=228 2014-03-12T09:40:00.609749+00:00 heroku[路由器]:at=info method=GET path=/refresh?utf8=%E2%9C%93和category%5Bcategory\u id%5D=&domain%5Bdomain\u id%5D=&qualified%5bqualified\u id%5D=4和commit=Search host=floating-castle-4592.herokuapp.com请求\u id=578810a1-52fc-4d2a-a095-97a8983d926b fwd=“122.167.180.66”dyno=web.1连接=1ms服务=243ms状态=500字节=1543_Ruby On Rails_Postgresql_Heroku_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails .1]: ^ 2014-03-12T09:40:00.602492+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602492+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.599548+00:00应用程序[web.1]:PG::Error:Error:语法错误位于或接近“)” 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html \应用程序浏览器浏览器浏览器浏览器浏览器3814188212292969351\ 70209931602340' 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:ActionView::Template::Error(PG::Error:Error:语法错误在或附近) 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:^ 2014-03-12T09:40:00.600424+00:00应用程序[web.1]:在106ms内完成500个内部服务器错误 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602881+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html\应用程序\应用程序\索引38141882122909096351\ 70209931602340'中 2014-03-12T09:40:00.967239+00:00 heroku[路由器]:at=info method=GET path=/favicon.ico host=floating-castle-4592.herokuapp.com请求\u id=d1fe2f58-7a19-42dc-9ef4-940d4841d822 fwd=“122.167.180.66”dyno=web.1 connect=2ms服务=7ms状态=200字节=228 2014-03-12T09:40:00.609749+00:00 heroku[路由器]:at=info method=GET path=/refresh?utf8=%E2%9C%93和category%5Bcategory\u id%5D=&domain%5Bdomain\u id%5D=&qualified%5bqualified\u id%5D=4和commit=Search host=floating-castle-4592.herokuapp.com请求\u id=578810a1-52fc-4d2a-a095-97a8983d926b fwd=“122.167.180.66”dyno=web.1连接=1ms服务=243ms状态=500字节=1543

Ruby on rails .1]: ^ 2014-03-12T09:40:00.602492+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602492+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.599548+00:00应用程序[web.1]:PG::Error:Error:语法错误位于或接近“)” 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html \应用程序浏览器浏览器浏览器浏览器浏览器3814188212292969351\ 70209931602340' 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:ActionView::Template::Error(PG::Error:Error:语法错误在或附近) 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:^ 2014-03-12T09:40:00.600424+00:00应用程序[web.1]:在106ms内完成500个内部服务器错误 2014-03-12T09:40:00.602693+00:00应用程序[网站1]:1: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:2: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:4: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]::从“事件”中选择“事件”。*其中的“事件”。()”中的“id”): 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602693+00:00应用程序[web.1]:第1行:从() 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:3: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602693+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]:6: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]: 2014-03-12T09:40:00.602881+00:00应用程序[网站1]: 2014-03-12T09:40:00.602492+00:00应用程序[网站1]:5: 2014-03-12T09:40:00.602881+00:00应用程序[web.1]:app/views/refresh/index.html.erb:3:在``应用程序视图\刷新\索引\ html\应用程序\应用程序\索引38141882122909096351\ 70209931602340'中 2014-03-12T09:40:00.967239+00:00 heroku[路由器]:at=info method=GET path=/favicon.ico host=floating-castle-4592.herokuapp.com请求\u id=d1fe2f58-7a19-42dc-9ef4-940d4841d822 fwd=“122.167.180.66”dyno=web.1 connect=2ms服务=7ms状态=200字节=228 2014-03-12T09:40:00.609749+00:00 heroku[路由器]:at=info method=GET path=/refresh?utf8=%E2%9C%93和category%5Bcategory\u id%5D=&domain%5Bdomain\u id%5D=&qualified%5bqualified\u id%5D=4和commit=Search host=floating-castle-4592.herokuapp.com请求\u id=578810a1-52fc-4d2a-a095-97a8983d926b fwd=“122.167.180.66”dyno=web.1连接=1ms服务=243ms状态=500字节=1543,ruby-on-rails,postgresql,heroku,ruby-on-rails-4,Ruby On Rails,Postgresql,Heroku,Ruby On Rails 4,编辑: 另外,我想知道如何根据活动在评选中的受欢迎程度对活动进行排序 我想这是你的问题: @e_1 << @cat.events.collect{|p| p.id} if @cat.present? @e_2 << @dom.events.collect{|p| p.id} if @dom.present? @e_3 << @eli.events.collect{|p| p.id} if @eli.present? @e_f = @e_1 | @e_2 | @

编辑:


另外,我想知道如何根据活动在评选中的受欢迎程度对活动进行排序

我想这是你的问题:

@e_1 << @cat.events.collect{|p| p.id} if @cat.present?
@e_2 << @dom.events.collect{|p| p.id} if @dom.present?
@e_3 << @eli.events.collect{|p| p.id} if @eli.present?
@e_f = @e_1 | @e_2 | @e_3
@all = Event.where(id: @e_f)
我认为这就是造成sql问题的原因

做你想做的事情的一个更好的方法是:

def index 
  @cat = Category.find(params[:category][:category_id]) if params[:category][:category_id].present?
  @dom = Domain.find(params[:domain][:domain_id]) if params[:domain][:domain_id].present?
  @eli = Eligible.find(params[:eligible][:eligible_id]) if params[:eligible][:eligible_id].present?
  @all = Event.find([@cat, @dom, @eli].reject(&:blank?).collect(&:event_ids).flatten.uniq)
  @user = current_user || User.new  
end
我认为这也可以进一步重构,仍然有很多重复

编辑:您询问了按最受欢迎的优先顺序排列结果的问题。这里有一种方法,它可能不是最有效的,也几乎肯定不是最漂亮的。它使用“orderbyfield(columnname,values)”,这是一种在sql中指定顺序的方法

def index 
  @cat = Category.find(params[:category][:category_id]) if params[:category][:category_id].present?
  @dom = Domain.find(params[:domain][:domain_id]) if params[:domain][:domain_id].present?
  @eli = Eligible.find(params[:eligible][:eligible_id]) if params[:eligible][:eligible_id].present?
  ids = [@cat, @dom, @eli].reject(&:blank?).collect(&:event_ids).flatten
  sorted_ids = ids.sort_by{|id| ids.select{|id2| id2 == id}.size}.reverse
  @all = Event.find(sorted_ids, :order => "field(id, #{sorted_ids.join(",")})" )
  @user = current_user || User.new  
end
这就是错误:

ActionView::Template::Error (PG::Error: ERROR:  syntax error at or near ")"
SELECT "events".* FROM "events"  WHERE "events"."id" IN ())
我们以前也遇到过类似的问题——基本上PGSql不像MYSQL或SQLite等那样宽容。我认为解决这个问题的最好方法是重构代码:

def index
   cat = params[:category][:category_id]
   domain = params[:domain][:domain_id]
   eli = params[:eligible][:eligible_id]

   queries = [cat, domain, eli]
   queries.each_with_index do |query, i|
       if query.present?
           instance_variable_set("@#{query}", Category.find(query))

           e = instance_variable_get("@#{query}")
           instance_variable_set("@e_#{i}" = e.events.collect{|p| p.id}) if defined?(e)
       end
   end

   @all = Event.where(id: [@e_1, @e_2, @e_3])
   @user = current_user || User.new

end

一开始这可能不起作用,但经过一些修复,我相信它会修复您一直存在的任何问题

您可以发布更多的堆栈跟踪信息来纠正错误吗?这将指向代码中导致问题的行。您可以在日志中看到问题是由正在执行的sql引起的:
从“事件”中选择“事件”。*,其中在()
中选择“事件”。.id”。这不是有效的sql-括号中需要有一些内容。因此,下一步是确定哪一行正在进行此调用-堆栈跟踪将显示给您。好!我不熟悉这个术语。顺便问一下,什么是堆栈跟踪?在哪里可以买到?我刚刚发布了更多heroku日志:|堆栈跟踪是代码处理异常的文件/行列表-它通过许多代码层“冒泡”。通常在rails中,您会看到很多rails gem引用,然后最终会看到一些代码(rails项目文件夹中的ie文件)。这几乎总是第一个问题。酷!有没有一种方法可以根据事件的重复来整理最终结果?据我所知,uniq合并了重复记录。它也会排序吗?你能解释一下你所说的
是什么意思吗?请根据事件重复来排序最终结果吗?a=[1,2,3,4]b=[3,4,5,7]a所以你想按事件在书中出现的次数来排序,就像在mysql中一样。我尝试了以下方法:ids=[cat,dom,eli].reject(&:blank?).collect(&:event_ids)。展平排序的_ids=ids。按{124; id | ids进行排序。选择{id2 | id2==id}.size}.reverse.uniq records=event.find(排序的_ids)。按(&:id)分组所有_事件=排序的_ids.map{id}记录[id]。first}w.r.t这篇文章效果非常好。
def index 
  @cat = Category.find(params[:category][:category_id]) if params[:category][:category_id].present?
  @dom = Domain.find(params[:domain][:domain_id]) if params[:domain][:domain_id].present?
  @eli = Eligible.find(params[:eligible][:eligible_id]) if params[:eligible][:eligible_id].present?
  @all = Event.find([@cat, @dom, @eli].reject(&:blank?).collect(&:event_ids).flatten.uniq)
  @user = current_user || User.new  
end
def index 
  @cat = Category.find(params[:category][:category_id]) if params[:category][:category_id].present?
  @dom = Domain.find(params[:domain][:domain_id]) if params[:domain][:domain_id].present?
  @eli = Eligible.find(params[:eligible][:eligible_id]) if params[:eligible][:eligible_id].present?
  ids = [@cat, @dom, @eli].reject(&:blank?).collect(&:event_ids).flatten
  sorted_ids = ids.sort_by{|id| ids.select{|id2| id2 == id}.size}.reverse
  @all = Event.find(sorted_ids, :order => "field(id, #{sorted_ids.join(",")})" )
  @user = current_user || User.new  
end
ActionView::Template::Error (PG::Error: ERROR:  syntax error at or near ")"
SELECT "events".* FROM "events"  WHERE "events"."id" IN ())
def index
   cat = params[:category][:category_id]
   domain = params[:domain][:domain_id]
   eli = params[:eligible][:eligible_id]

   queries = [cat, domain, eli]
   queries.each_with_index do |query, i|
       if query.present?
           instance_variable_set("@#{query}", Category.find(query))

           e = instance_variable_get("@#{query}")
           instance_variable_set("@e_#{i}" = e.events.collect{|p| p.id}) if defined?(e)
       end
   end

   @all = Event.where(id: [@e_1, @e_2, @e_3])
   @user = current_user || User.new

end