- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试部署我的 Rails 应用程序,但我的 herokuapp 在运行时出错。但是在我的 ubuntu 中,当我运行我的 Rails 应用程序时,它运行得很顺利。
如何提高查询效率?我认为这与查询有关,这就是我的 herokuapp 出错的原因。
在我的events_controller
@forw = Forward.select(:user_id).where(:doc_id => params[:id])
@users = User.where.not(:id => "#{@user.id}").where.not(:id => @forw)
@sent = User.where.not(:id => "#{@user.id}").where(:id => @forw)
#line #41
@status = Forward.select(:status).where(user_id: @sent.ids).where(doc_id: params[:id])
它会导致这个错误
2018-07-13T06:06:59.283437+00:00 app[web.1]: F, [2018-07-13T06:06:59.283386 #4] FATAL -- : [4391812e-d824-4a3d-b87f-28a231dc54cc] ActiveRecord::StatementInvalid (PG::UndefinedFunction: ERROR: operator does not exist: bigint = text
2018-07-13T06:06:59.283438+00:00 app[web.1]: LINE 1: ...sers" WHERE ("users"."id" != $1) AND "users"."id" IN (SELECT...
2018-07-13T06:06:59.283440+00:00 app[web.1]: ^
2018-07-13T06:06:59.283441+00:00 app[web.1]: HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2018-07-13T06:06:59.283443+00:00 app[web.1]: : SELECT "users"."id" FROM "users" WHERE ("users"."id" != $1) AND "users"."id" IN (SELECT "forwards"."user_id" FROM "forwards" WHERE "forwards"."doc_id" = $2)):
2018-07-13T06:06:59.283486+00:00 app[web.1]: F, [2018-07-13T06:06:59.283441 #4] FATAL -- : [4391812e-d824-4a3d-b87f-28a231dc54cc]
2018-07-13T06:06:59.283544+00:00 app[web.1]: F, [2018-07-13T06:06:59.283498 #4] FATAL -- : [4391812e-d824-4a3d-b87f-28a231dc54cc] app/controllers/events_controller.rb:41:in `forward'
在我的logins_controller
@forwards = Forward.select(:doc_id).where(:user_id => "#{@user.id}").where(:status => 'FORWARDED')
@received = Document.where(:id => @forwards)
它会导致这个错误
2018-07-13T06:09:42.579716+00:00 app[web.1]: I, [2018-07-13T06:09:42.579651 #4] INFO -- : [f55de38f-3744-4cec-a2c4-5317efa61462] Completed 500 Internal Server Error in 17ms (ActiveRecord: 7.9ms)
2018-07-13T06:09:42.580566+00:00 app[web.1]: F, [2018-07-13T06:09:42.580498 #4] FATAL -- : [f55de38f-3744-4cec-a2c4-5317efa61462]
2018-07-13T06:09:42.580619+00:00 app[web.1]: F, [2018-07-13T06:09:42.580563 #4] FATAL -- : [f55de38f-3744-4cec-a2c4-5317efa61462] ActionView::Template::Error (PG::UndefinedFunction: ERROR: operator does not exist: bigint = text
2018-07-13T06:09:42.580621+00:00 app[web.1]: LINE 1: ...uments".* FROM "documents" WHERE "documents"."id" IN (SELECT...
2018-07-13T06:09:42.580623+00:00 app[web.1]: ^
2018-07-13T06:09:42.580625+00:00 app[web.1]: HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts.
2018-07-13T06:09:42.580627+00:00 app[web.1]: : SELECT "documents".* FROM "documents" WHERE "documents"."id" IN (SELECT "forwards"."doc_id" FROM "forwards" WHERE "forwards"."user_id" = $1 AND "forwards"."status" = $2)):
2018-07-13T06:09:42.580877+00:00 app[web.1]: F, [2018-07-13T06:09:42.580818 #4] FATAL -- : [f55de38f-3744-4cec-a2c4-5317efa61462] 190: %th Description
2018-07-13T06:09:42.580880+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 191: %th Options
2018-07-13T06:09:42.580881+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 192: %tbody{:align => "center"}
2018-07-13T06:09:42.580883+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 193: - @received.each do |document|
2018-07-13T06:09:42.580885+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 194: %tr
2018-07-13T06:09:42.580886+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 195: %td= document.name
2018-07-13T06:09:42.580888+00:00 app[web.1]: [f55de38f-3744-4cec-a2c4-5317efa61462] 196: %td= document.author_name
2018-07-13T06:09:42.580923+00:00 app[web.1]: F, [2018-07-13T06:09:42.580872 #4] FATAL -- : [f55de38f-3744-4cec-a2c4-5317efa61462]
2018-07-13T06:09:42.580973+00:00 app[web.1]: F, [2018-07-13T06:09:42.580924 #4] FATAL -- : [f55de38f-3744-4cec-a2c4-5317efa61462] app/views/logins/dashboard.html.haml:193:in `_app_views_logins_dashboard_html_haml__4338535734076852815_41972620'
在我的folders_controller
@doc_type = params[:doc_type]
@doc_id = Document.select(:id).distinct.where(doc_type: params[:doc_type])
#line #48
@doc_year = Event.find_by_sql("SELECT DISTINCT strftime('%Y', event_date) as dates FROM events e JOIN documents d ON e.event_date = d.date_modified where d.doc_type = '#{@doc_type}'")
它会导致这个错误
2018-07-13T06:08:01.901994+00:00 app[web.1]: I, [2018-07-13T06:08:01.901927 #4] INFO -- : [28c1cc51-c582-4fcb-8665-62410aa26ef5] Completed 500 Internal Server Error in 7ms (ActiveRecord: 3.9ms)
2018-07-13T06:08:01.902614+00:00 app[web.1]: F, [2018-07-13T06:08:01.902545 #4] FATAL -- : [28c1cc51-c582-4fcb-8665-62410aa26ef5]
2018-07-13T06:08:01.902675+00:00 app[web.1]: F, [2018-07-13T06:08:01.902609 #4] FATAL -- : [28c1cc51-c582-4fcb-8665-62410aa26ef5] ActiveRecord::StatementInvalid (PG::UndefinedFunction: ERROR: function strftime(unknown, date) does not exist
2018-07-13T06:08:01.902677+00:00 app[web.1]: LINE 1: SELECT DISTINCT strftime('%Y', event_date) as dates FROM eve...
2018-07-13T06:08:01.902679+00:00 app[web.1]: ^
2018-07-13T06:08:01.902681+00:00 app[web.1]: HINT: No function matches the given name and argument types. You might need to add explicit type casts.
2018-07-13T06:08:01.902683+00:00 app[web.1]: : SELECT DISTINCT strftime('%Y', event_date) as dates FROM events e JOIN documents d ON e.event_date = d.date_modified where d.doc_type = 'Letter'):
2018-07-13T06:08:01.902721+00:00 app[web.1]: F, [2018-07-13T06:08:01.902671 #4] FATAL -- : [28c1cc51-c582-4fcb-8665-62410aa26ef5]
2018-07-13T06:08:01.902773+00:00 app[web.1]: F, [2018-07-13T06:08:01.902724 #4] FATAL -- : [28c1cc51-c582-4fcb-8665-62410aa26ef5] app/controllers/folders_controller.rb:48:in `folder_year'
模型
class Event < ActiveRecord::Base
belongs_to :document, optional: true
validates :event_date, presence: true
validates :event_type, presence: true
validates :doc_id, presence: true
end
class Forward < ApplicationRecord
validates :user_id, presence: true
validates :doc_id, presence: true
end
class Document < ActiveRecord::Base
has_one :author
has_many :event
validates :name, presence: true
validates :doc_type, presence: true
validates :description, presence: true
validates :location, presence: true
end
class Request < ApplicationRecord
def self.from_omniauth(auth)
where(provider: auth.provider, uid: auth.uid).first_or_initialize.tap do |user|
user.provider = auth.provider
user.uid = auth.uid
user.first_name = auth.info.first_name
user.last_name = auth.info.last_name
user.emailadd = auth.info.email
user.save!
end
end
validates :emailadd,
uniqueness: true, presence: true,
format: {
message: 'domain must be @up.edu.ph', with: /\A[\w+-.]+@up.edu.ph\z/i}
validates :first_name, presence: true
validates :last_name, presence: true
end
最佳答案
让我们从logins_controller开始
@forwards = Forward.select(:doc_id).where(:user_id => "#{@user.id}").where(:status => 'FORWARDED')
@received = Document.where(:id => @forwards)
where
之外的任何地方使用@forwards
,那么您不必使用实例变量来定义它。事实上,您根本不必定义它。使用 joins
将多个表连接成一个表并对其调用查询。"#{@user.id}"
而不是 @user.id
。where
改进的代码:
@received = Document.joins("LEFT JOIN forwards on forwards.doc_id = documents.id").where(forwards: {user_id: @user.id, status: 'FORWARDER'})
关于ruby-on-rails - 如何让我的数据库查询更有效率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51318470/
我有一个功能是转换 ADO Recordset 进入html: class function RecordsetToHtml(const rs: _Recordset): WideString; 该函
经过几天的研究和讨论,我想出了这种方法来收集访客的熵(你可以看到我的研究历史here) 当用户访问时,我运行此代码: $entropy=sha1(microtime().$pepper.$_SERVE
给定一个无序列表 List ,我需要查找是否存在 String与提供的字符串匹配。 所以,我循环 for (String k : keys) { if (Utils.keysM
我已经搜索过这个问题,但没有找到我正在寻找的答案。 基本上,我想将类构造函数包装在 try/except 子句中,以便它忽略构造函数内特定类型的错误(但无论如何都会记录并打印它们)。我发现做到这一点的
我有一组三个数字,我想将一组数字与另一组数字进行比较。即,第一组中的每个数字小于另一组中的至少一个数字。需要注意的是,第一组中的下一个数字必须小于第二组中的不同数字(即,{6,1,6} 对 {8,8,
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 9 年前。 Improve this
首先介绍一下背景: 我正在开发一个带有 EJB 模块和应用程序客户端模块的企业应用程序 (ear)。我还使用 hibernate JPA 来实现持久性,并使用 swingx 来实现 GUI。这些是唯一
我正在尝试在我的上网本上运行 Eclipse 以便能够为 Android 进行开发。 您可能已经猜到了,Eclipse 非常慢,并且不容易有效地开发。 我正在使用 Linux Ubuntu 并且我还有
for row, instrument in enumerate(instruments): for col, value in enumerate(instrument):
return not a and not b ^ 我如何以更好的格式表达它 最佳答案 DeMorgan's Law , 也许? return not (a or b) 我认为在这一点上已经足够简单了
我正在尝试让 Font Awesome 图标看起来更 slim https://jsfiddle.net/cliffeee/7L6ehw9r/1/ . 我尝试使用“-webkit-text-strok
假设我有一个名为 vals 的数据框,如下所示: id…………日期…………min_date…… .........最大日期 1…………2016/01/01…………2017/01/01…………2018/
是否有更 Pythonic 的方式来做到这一点?: if self.name2info[name]['prereqs'] is None: se
我有一个函数可以将一些文本打印到它接收到的 ostream&。如果 ostream 以终端为目标,我想让它适应终端宽度,否则默认为某个值。 我现在做的是: 从 ostream 中获取一个 ofstre
这个问题在这里已经有了答案: Should a retrieval method return 'null' or throw an exception when it can't produce
我有这个 bc = 'off' if c.page == 'blog': bc = 'on' print(bc) 有没有更 Pythonic(和/或更短)的方式在 Python 中编写? 最佳
输入:一个包含 50,000 行的 CSV;每行包含 910 列值 0/1。 输出:运行我的 CNN 的数据框。 我编写了一个逐行读取 CSV 的代码。对于每一行,我将数据分成两部分,称为神经元(90
据我所知,with block 会在您退出 block 后自动调用 close(),并且它通常用于确保不会忘记关闭一个文件。 好像没有技术上的区别 with open(file, 'r+') as f
我有一个使用 Entity Framework V6.1.1 的 MVC 5 网站。 Entity Framework DbContext 类和模型最初都在网站项目中。这个项目有 3 个 DbCont
我是编程新手,在尝试通过将 tableView 和关联 View 的创建移动到单独的类并将委托(delegate)和数据源从 VC 移动到单独的类来精简我的 ViewController 时遇到了一些
我是一名优秀的程序员,十分优秀!