我有很长的关联链、连接链、排序依据等,它们最终是从我的一个 Rails 模型中进行选择的。在一天结束时,我需要结果是唯一的和排序的。我不在乎在 SELECT 语句中使用了哪些列,在 ORDER BY 中出现了什么(这些都根据用户选择的过滤选项而变化),我只关心顶层模型/表查询是唯一的(基于 id)。
对于背景,widgets是主表,我们正在加入widget_steps,这是在 Rails 3 中(公司正在尝试尽快升级,但这就是他们目前所坚持的)
这是正在生成的查询和错误:
PG::InvalidColumnReference: ERROR: for SELECT DISTINCT, ORDER BY expressions must appear in select list
LINE 1: ...completed_at" IS NULL)) ORDER BY sequential DESC, widget_s...
^
: SELECT DISTINCT "widgets".* FROM "widgets" INNER JOIN "widget_steps" ON "widget_steps"."widget_id" = "widgets"."id" INNER JOIN "widget_steps" "active_steps_widgets" ON "active_steps_widgets"."id" = "widgets"."active_widget_step_id" WHERE "widgets"."account_id" = 1 AND "widgets"."completed_at" IS NULL AND (("widgets"."sequential" = 't' AND "widget_steps"."assigned_to" = 5 AND …Run Code Online (Sandbox Code Playgroud) 据我所知,Google Cloud Functions仅在us-central1中可用,因为选择区域的下拉菜单只允许我选择us-central1,当我尝试使用区域不同的东西编写自己的部署脚本时像us-east4这样的选项,部署失败了.是这样的吗?是否有一些隐藏的方法可以在us-east4或其他地区创建云功能?
更新:链接的问题为Firebase澄清了这一点,但我希望看到云功能的正式答案.根据我在网上找到的内容,我的猜测是,在Cloud Functions不在测试阶段之前,它只能在us-central1中使用.
我有一个 Rails 4 应用程序,它最近进行了大量升级(在 gem 版本和其他一些东西方面)。部署工作正常,但是一旦我们清除了我们的 tmp 目录,我们就会注意到资产在生产中停止工作。发生的事情是出于某种原因在生产模式下,助手没有在任何资产文件名中使用摘要(例如,/javascripts/application.js而不是/javascripts/application-some-digest.js)。这会导致这些资产变为 404,因为它们确实存在于public目录中,并带有其正确的摘要名称,并且 Google App Engine 被设置为独立为公共目录提供静态文件(这一直工作正常)。然而,真正奇怪的是,在暂存模式下,应用程序一切正常,因此我们的生产环境中有一些东西使助手不使用摘要。
然而,更奇怪的是,如果我去RAILS_ENV=production rails console,helper.asset_path 'application.js'我会得到正确的文件名和摘要。这到底是怎么回事?
是的,我们RAILS_ENV=production rake:assets:precompile在部署之前正在做。
以下是来自的相关部分config/environments/production.rb:
config.eager_load = true
config.assets.cache_store = :dalli_store
# Don't force SSL because we need non-ssl cookies.
config.force_ssl = false
config.stripe_livemode = true
config.assets.digest = true
config.assets.compile = false
Run Code Online (Sandbox Code Playgroud)
以下是来自的相关部分config/environments/shared.rb:
# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_files = false …Run Code Online (Sandbox Code Playgroud) 这适用于使用 PostgreSQL 的 Rails 5 / Active Record 5。
假设我有两个模型:Product和Widget. 一个Product has_many小部件和Widget has_many通过产品连接表叫products_widgets。
我想写发现,与相关联的所有产品的查询都与小部件id=37 ,并与小部件id=42。
我实际上有一个 id 列表,但是如果我能写出上面的查询,我一般可以解决这个问题。
请注意,此查询的版本更容易是找到与相关联的所有部件要么与小部件id=37 或与窗口小部件id=42,你可以写如下:
Product.joins(:products_widgets).where(products_widgets: {widget_id: [37, 42]})
但这不是我需要的。