小编dlu*_*biu的帖子

在Rails模型验证中使用哪个更好:Proc或lambda?

我知道proc和lambda之间的区别。根据以下准则,在Rails模型验证中使用哪个更好:Proc或lambda?

程序:

  • 与块类似的行为。
  • 可以存储在变量中并在周围移动。
  • 参数数量没有问题。
  • return 从proc中退出将退出调用该方法的方法。

Lambda:

  • 与Proc相同,但更接近方法。
  • 严格考虑它获取和需要的参数。
  • return 从lambda中退出将退出lambda,并且调用该方法的方法将继续执行。

但是我还没有看到能使它有所作为的验证:

validates :name, present: true, if: -> { assotiation.present? }
validates :name, present: true, if: proc { |c| c.assotiation.present? }
Run Code Online (Sandbox Code Playgroud)

我检查了rubocop,但没有发现任何建议。您知道在ruby / rails样式指南,rubocop或其他工具中哪个更好?

ruby validation lambda ruby-on-rails proc

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

芹菜多在码头工人容器

我在docker容器中有芹菜的python应用程序。我希望几个不同队列的工人。例如:

celery worker -c 3 -Q queue1
celery worker -c 7 -Q queue2,queue3
Run Code Online (Sandbox Code Playgroud)

但我不在docker compose中执行此操作。我发现了芹菜多。我尝试使用它。

version: '3.2'
services:
  app:
    image: "app"
    build:
      context: .
    networks:
      - net
    ports:
      - 5004:5000
    stdin_open: true
    tty: true
    environment:
      FLASK_APP: app/app.py
      FLASK_DEBUG: 1
    volumes:
      - .:/home/app
  app__celery:
    image: "app"
    build:
      context: .
    command: sh -c 'celery multi start 2 -l INFO -c:1 3 -c:2 7 -Q:1 queue1 -Q:2 queue2,queue3'
Run Code Online (Sandbox Code Playgroud)

但是我明白了...

app__celery_1  |    > celery1@1ab37081acb9: OK
app__celery_1  |    > celery2@1ab37081acb9: OK
app__celery_1 exited with code …
Run Code Online (Sandbox Code Playgroud)

python celery docker docker-compose

3
推荐指数
2
解决办法
1921
查看次数

用数字按字母顺序对列进行排序

我有列的表:name。我想:name按字母顺序排序。

使用Item.order(:name)并获得"item 14", "item 15", "item 16", "item 3", "item 4". 但我想要"item 3", "item 4", "item 14", "item 15", "item 16"

如何实现这一目标?

postgresql activerecord ruby-on-rails psql

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