小编Joh*_*976的帖子

如何在Liquid中本地化日期?

在我的Rails 5应用程序中,我使用Liquid让我的用户生成内容.

根据我的用户输入,我使用以下内容初始化我的模板:

string   = "Order {{ order.id }} was created {{ order.date | date: '%A %d/%m-%Y' }}"
template = Liquid::Template.parse(string)
result   = template.render({'order' => {'id' => '123', 'date' => order.date}})
Run Code Online (Sandbox Code Playgroud)

这将打印一些la:

'Order 123 was created Sunday 14/01-2018'
Run Code Online (Sandbox Code Playgroud)

但是如何在我的Rails应用程序中构建Liquid日期本地化?

它似乎在文档中不受支持.然而,Shopify本身似乎已经在他们的Liquid实现中构建了本地化.

我想我需要通过我的模板语言环境(en,fr,等)和区域文件.我的Rails语言环境文件如下所示:

en:
  datetime: &datetime
    month_names:
      [~, January, February, March, April, May, June, July, August, September, October, November, December]
    day_names:
      [Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday]
    abbr_day_names:
      [~, Sun, Mon, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails liquid ruby-on-rails-5

9
推荐指数
1
解决办法
737
查看次数

如何使用MongoDB聚合进行分页?

我想执行一个执行基本分页的聚合查询:

  1. 查找属于某个特定的所有订单 company_id
  2. 按顺序排序 order_number
  3. 计算文件总数
  4. 跳到例如文档编号100并传递其余部分
  5. 将文档数量限制为例如2并传递它们
  6. 通过从文档中返回计数和选定的几个字段来完成

以下是查询的细分:

db.Order.collection.aggregate([
Run Code Online (Sandbox Code Playgroud)

这会找到所有匹配的文档:

  { '$match'    : { "company_id" : ObjectId("54c0...") } },
Run Code Online (Sandbox Code Playgroud)

这会对文件进行排序:

  { '$sort'     : { 'order_number' : -1 } },
Run Code Online (Sandbox Code Playgroud)

这会对文档进行计数并传递未经修改的文档,但我确信这样做是错误的,因为事情变得怪异了:

  {
    '$group' : {
      '_id'     : null,
      'count'   : { '$sum' : 1 },
      'entries' : { '$push' : "$$ROOT" }
    }
  },
Run Code Online (Sandbox Code Playgroud)

这似乎跳过一些文件:

  { "$skip"     : 100 },
Run Code Online (Sandbox Code Playgroud)

这应该限制文档,但它不会:

  { "$limit"    : 2 },
Run Code Online (Sandbox Code Playgroud)

这会返回计数,但它不会返回数组中的文档,而是返回包含每个字段的数组:

  { '$project'  : {
      'count'     : 1,
      'entries' …
Run Code Online (Sandbox Code Playgroud)

pagination mongodb aggregation-framework

8
推荐指数
2
解决办法
8969
查看次数

Sidekiq/redis与websocket_rails冲突:eventmachine未初始化:evma_connect_to_server

我正在使用sidekiq (2.13.1)(请参阅此处的依赖项),websocket-rails (0.6.2)(请参阅此处的依赖项)和redis-semaphore (0.2.1)(请参阅此处的依赖项).

sidekiq已经在我的应用程序中运行了很长时间,但在安装后websocket-rails我不再能够执行我的sidekiq工作.它们都崩溃了这个堆栈跟踪:

2013-09-15T13:15:17Z 12682 TID-ouvinq47w INFO: Sidetiq::Clock start
2013-09-15T13:15:19Z 12682 TID-ouvinq47w INFO: Booting Sidekiq 2.13.1 using redis://localhost:6379/0 with options {}
2013-09-15T13:15:19Z 12682 TID-ouvinq47w INFO: Running in ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.4.0]
2013-09-15T13:15:19Z 12682 TID-ouvinq47w INFO: See LICENSE and the LGPL-3.0 for licensing details.
2013-09-15T13:15:19Z 12682 TID-ouvinq47w INFO: Starting processing, hit Ctrl-C to stop
2013-09-15T13:15:20Z 12682 TID-ouvjitprc EvaluationsJob JID-7a108bea6da948aee5f43a99 INFO: start
2013-09-15T13:15:20Z …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails eventmachine websocket redis sidekiq

5
推荐指数
1
解决办法
3102
查看次数

在Rails api应用程序中使用“ ApplicationController.new.render_to_string”(config.api_only = true)

我有一个Rails 5应用程序构建为api应用程序

# config/application.rb
module MyApp
  class Application < Rails::Application
    config.api_only = true
  end
end
Run Code Online (Sandbox Code Playgroud)

在我的控制器动作之一中,我需要呈现一些Ruby风格的html,然后将其重新提供给json响应。

标准的Rails应用程序可以执行以下操作:

# app/controllers/my_controller.rb
def my_action
  html = ApplicationController.new.render_to_string("my_erb_or_haml_file", locals: {foo: "bar"}, layout: false)
  render :json => {html: html}, :status => :ok
end
Run Code Online (Sandbox Code Playgroud)

但是,对于我瘦小的api应用来说,ApplicationController.new.render_to_string似乎只是render " "。这使我感到困惑,因为我希望它可以提供内容或引发异常。

有什么建议我应该采取什么方式来生成Ruby风格的html?

ruby-on-rails applicationcontroller ruby-on-rails-5

1
推荐指数
1
解决办法
635
查看次数

从 Bootstrap 5 手风琴按钮中删除轮廓

当您查看Bootstrap 5 手风琴时,您会看到一个轮廓。我想删除它。我不确定哪个元素实际产生了轮廓,但我怀疑它是button. 在任何情况下,我都尝试将以下内容应用于所有可能的元素:

.accordion-item, .accordion-item:focus, .accordion-item:active,
.accordion-header, .accordion-header:focus, .accordion-header:active,
.accordion-button, .accordion-button:focus, .accordion-button:active {
  outline: none !important;
}
Run Code Online (Sandbox Code Playgroud)

似乎没有任何效果。有任何想法吗?

这是 html 代码的副本:

<div class="accordion" id="accordionExample">
  <div class="accordion-item">
    <h2 class="accordion-header" id="headingOne">
      <button class="accordion-button" type="button" data-bs-toggle="collapse" data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
        Accordion Item #1
      </button>
    </h2>
    <div id="collapseOne" class="accordion-collapse collapse show" aria-labelledby="headingOne" data-bs-parent="#accordionExample">
      <div class="accordion-body">
        ...
      </div>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap bootstrap-5

1
推荐指数
2
解决办法
1174
查看次数