小编MId*_*hna的帖子

ssh-agent 转发到 docker-compose 环境不起作用

我一直在将 ssh-agent 转发到 docker 容器(使用我的 docker-compose 安装)时遇到了严重的麻烦。我有运行 Catalina 的 Mac,使用 docker-engine 19.03.8 和 Compose @ 1.24。以下是我的 docker-compose 文件:

version: '3.7'
services:
  platform:
    build:
      context: .
      dockerfile: ./platform/compose/Dockerfile.platform.local
    working_dir: /root/platform
    ports:
      - "3000:3000"
    command: ["./compose/scripts/start_rails.sh"]
    tty: true
    stdin_open: true
    volumes:
      - type: bind
        source: /run/host-services/ssh-auth.sock
        target: /run/host-services/ssh-auth.sock
    env_file: ./platform/.env
    environment:
      TERM: xterm-256color
      SSH_AUTH_SOCK: /run/host-services/ssh-auth.sock

volumes:
Run Code Online (Sandbox Code Playgroud)

我配置 ssh-agent 转发的方式在docker-compose 文档中指定

./compose/scripts/start_rails.sh脚本确实bundle install && bundle exec rails s。我从私有存储库中提取的 gem 很少,我认为我应该能够通过转发 ssh-agent 来安装这些 gem。

我还尝试在旋转 docker-compose 之前启动 ssh-agent,但这似乎没有任何作用。 …

ruby-on-rails ssh-agent docker docker-compose moby

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

Arel AND子句和空条件

请考虑以下代码片段:

def sql
  billing_requests
  .project(billing_requests[Arel.star])
  .where(
    filter_by_day
      .and(filter_by_merchant)
      .and(filter_by_operator_name)
  )
  .to_sql
end

def filter_by_day
  billing_requests[:created_at].gteq(@start_date).and(
    billing_requests[:created_at].lteq(@end_date)
  )
end

def filter_by_operator_name
  unless @operator_name.blank?
    return billing_requests[:operator_name].eq(@operator_name)
  end
end

def filter_by_merchant
  unless @merchant_id.blank?
    return billing_requests[:merchant_id].eq(@merchant_id)
  end
end

private

def billing_requests
  @table ||= Arel::Table.new(:billing_requests)
end
Run Code Online (Sandbox Code Playgroud)

filter_by_merchant商家ID变空的方法中,Arel必须返回的值才能忽略AND子句效果?还有,有更好的方法来处理这种情况吗?

ruby activerecord ruby-on-rails arel

6
推荐指数
2
解决办法
921
查看次数

在postgresql json字段中选择键的唯一值

我有以下模型:

Shipment:
  reference_numbers: [] :json field
Run Code Online (Sandbox Code Playgroud)

参考字段一般结构如下:

[{'reference_field_name': 'freight_number', 'reference_field_value': '0098'}, {'reference_field_name': 'bill_of_lading', 'reference_field_value': '1190' }]
Run Code Online (Sandbox Code Playgroud)

此处的字段名称可能因交付而异。它可以是任何东西,而不仅仅是 bill_of_lading 和 cargo_number。

在货件中的 reference_numbers 中查找“reference_field_name”的所有唯一值的最佳方法是什么?

ruby sql postgresql json ruby-on-rails

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

ruby私有类方法助手

嗨,我正在尝试创建一个帮助程序,用于将ruby方法定义为私有类方法.通常,可以使用private_class_method键工作将方法定义为私有类方法.但我想以下列风格创建一个帮助器:

class Person
  define_private_class_methods do 
    def method_one
    end

    def method_two
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我计划动态定义它的方式是以下方式,它根本不起作用:

class Object
  def self.define_private_class_methods &block
    instance_eval do
      private
      &block
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

我可能会出错的任何想法?

ruby metaprogramming

5
推荐指数
3
解决办法
339
查看次数

如何在ruby中提取字符串中的第一个单词而不循环?

我试图用ruby获得字符串的第一个字母.以下是我写的.

puts "world is a better place".split.collect{|w| w[0].capitalize}.join()
Run Code Online (Sandbox Code Playgroud)

是否有更简洁的方法来产生相同的结果?

ruby string

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

锁定多行

是否可以一次锁定多行以防止更新PostgreSQL中的行?我经过了官方锁,可以找到在表级别和行级别有效的锁,但是在多行上却没有。

有可能在postgresql中这样做吗?

sql postgresql activerecord locking

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

在分隔符之间提取字符串

如何分隔符/多个分隔符之间获得子串?例如:

sample_string = "00990099"
some_method(sample_string, "9") 
=> ["00"]

sample_string = "00XXX00XX0X00X00"
some_method(sample_string, "X")
=> ["00", "0", "00"]
Run Code Online (Sandbox Code Playgroud)

我尝试使用split,但是有一个优雅的解决方案吗?

ruby regex

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

“rails new”命令不会创建应用程序文件夹

概括:

Ubuntu 18.04 LTS;导轨 6.0.2.1;红宝石 2.7.0;

“rails new myapp”创建 GemFile、.gitignore 等,但不创建 app 文件夹

我已经在云开发环境(Cloud9)上成功使用Rails(5.1.6),但是想搭建一个本地开发环境。

我安装了 Ubuntu 18.04 LTS。然后我按照在线资源指导我安装 RVM、Ruby 和 Rails 本身。一切似乎都安装正确(如下面的版本检查所示)。

在运行命令时,rails new myapp我希望找到完整的 Rails 文件夹和创建的文件,但只找到了下面显示的 6 个文件。为什么没有创建带有关联文件的 app 文件夹?

(我在 Rails 5.2.0 和 Ruby 2.5.1 上重复了这个并遇到了同样的问题)

simbed@simbed-ThinkPad-T410:~$ ruby -v
ruby 2.7.0p0 (2019-12-25 revision 647ee6f091) [x86_64-linux]
simbed@simbed-ThinkPad-T410:~$ rails -v
Rails 6.0.2.1
simbed@simbed-ThinkPad-T410:~$ sqlite3 --version
3.22.0 2018-01-22 18:45:57 0c55d179733b46d8d0ba4d88e01a25e10677046ee3da1d5b1581e86726f2alt1
simbed@simbed-ThinkPad-T410:~$ yarn -v
1.21.1
simbed@simbed-ThinkPad-T410:~$ cd environment
simbed@simbed-ThinkPad-T410:~/environment$ rails new myapp
      create  
      create  README.md
      create  Rakefile
      create  .ruby-version
      create …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ubuntu-18.04

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