Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Rei
@Rei
Admin
NO. 1 / 2011-10-28

[email protected]
深圳
182 Topics / 9130 Replies
727 Followers
0 Following
11 Favorites
中下水平 Rails 程序员
Reward
GitHub Public Repos
  • writings 940

    [Closed] Source code of writings.io

  • alipay 732

    Unofficial alipay ruby gem

  • code_campo 291

    [Closed] Source code of http://codecampo.com

  • asciidoctor-pdf-cjk-ka... 101

    **no longer maintained**

  • asciidoctor-htmlbook 31

    Asciidoctor HTMLBook is an Asciidoctor backend for converting AsciiDoc documents to HTMLBook docu...

  • material-ui 17

  • rich-text-editor 12

  • htmlrenderer 12

  • rails-chatgpt-demo 8

  • rails-app 7

    A Rails project template lets me start new projects quickly.

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 怎么格式化 rack 的 @env at September 08, 2021

    这一看大概是 Hash,里面有的值还是对象(非基本类型),要把它格式化为 json 是什么需求?

    硬要做的话:

    require 'json'
    
    JSON.dump @env
    
  • DHH:Rails 7 将在 2021+ 年为 JavaScript 提供三个很好的答案 at September 08, 2021

    例如 Github 和 Shopify?

  • rescue 为什么不处理 SQLite3::SQLException 异常 at September 08, 2021

    看样子是 Sequel 捕获了 SQLite3 的异常,包裹在 Sequel::DatabaseError 里面再抛出,到用户代码这里能捕获的是 Sequel::DatabaseError。

  • 后端开发路线图 at September 08, 2021

    这是特意把所有可选项列出来了,像 db 那里不需要一次学那么多 db。

  • 刚从 node 那边回来 at September 07, 2021

    所谓前后端分离就是 Rails 只写 API,前端放在另一项目,那么怎么搞都可以。如果想彻底一点,Rails 有个 API mode,不加载 view 和 session 相关的组件。

  • 刚从 node 那边回来 at September 06, 2021

    是的。

  • 刚从 node 那边回来 at September 06, 2021

    Rails 加上 Hotwire 就满足很多场景了。

  • 关于用 Docker 离线部署我的做法和讨论 at September 06, 2021

    dokcer swarm 有 rolling updates https://docs.docker.com/compose/compose-file/compose-file-v3/#update_config

    配合 healthcheck 可以实现无中断更新 https://docs.docker.com/compose/compose-file/compose-file-v3/#healthcheck

  • 郵箱激活功能 at August 27, 2021

    我现在用着 rails-ujs 带的 Rails.ajax 方法,看上去以后 rails-ujs 会被抛弃,到时就转 request.js。

  • 郵箱激活功能 at August 27, 2021

    简单方法是先用 form_with 生成一个常规 Rails form(带有 csrf token),然后页面内一段 js 提交:

    <script>document.getElementById('form-id').submit()</script>
    

    搜 js 提交可能会查到纯 ajax 然后碰到 csrf token 的问题。

  • 哪个基于 Rails 的开源博客系统比较开放、体验较好? at August 27, 2021

    自建建议用 jekyll,横行比较别家静态网站生成器,我也觉得 jekyll 维护最好,文档齐全。

  • 没想到在 IRuby 中绘个图这么难… at August 26, 2021

    马太效应,强者越强。有这个需求的一开始就会选最成熟的平台,缺少人扩展 Ruby 的这一领域。

  • 郵箱激活功能 at August 25, 2021

    link_to method: :post 依赖 Rails ujs,是只能在 Rails view 里面使用的辅助方法。邮件内容在邮件客户端打开,没有加载 rails ujs 的前端库,不能使用。

    通常做法是在邮件里写一个对应 get 的页面地址,在这个地址内让用户手动或者用 js 自动提交 post 请求。

  • Rails 自带的层级为什么只有两层?Rails 的分层哲学是什么呢? at August 24, 2021

    新的层在 app/ 下新增目录就行了,app/ 下的目录会加到 autoload 的路径里,lib/ 目录还需要配置。

  • Rails 自带的层级为什么只有两层?Rails 的分层哲学是什么呢? at August 24, 2021

    The Rails Doctrine 是 Rails 哲学的总结

    原版:https://rubyonrails.org/doctrine/

    中文翻译:https://github.com/ruby-china/the-rails-doctrine

    其中“多元化的设计模式”这一节说了 model 层为什么是这样的,简单来说就是:实用。

    如果还是觉得“我就是需要 service 层啊,Rails 不提供就是不对”,那么可以试试我写的这个 gem https://github.com/chloerei/active_service ……

  • null at August 07, 2021

    多谢推荐 😃

    静态博客用来锻炼设计能力是不错的。

  • GeekNote,一个专为 Geek 设计的博客服务 at August 05, 2021

    现在内容少,还是人工的。

  • GeekNote,一个专为 Geek 设计的博客服务 at August 04, 2021

    是 ActiveStorage,附件的地址为了美观用了定制 Controller。

  • Ruby 企业级架构师培训(实验班)暨 Rails on Cloud 开源 Contributer 招募 at August 04, 2021

    可以参考 https://gorails.com/ ,有订阅教程,也有按课程收费。直播感觉效率低又不可扩展。

  • GeekNote,一个专为 Geek 设计的博客服务 at August 04, 2021

    这是社区准则 https://geeknote.net/policy/posts/190

    目前看来不打广告卖货就行。

  • 建立 hello reader 网站 at August 02, 2021

    如果是第一次独立开发一个网站的话,不错,要坚持。

    提个设计的意见,导航条的返回上一步和菜单按钮不应该同时出现。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 29, 2021

    会做的,优先级已经排在前面了。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 29, 2021

    导出功能还没开发,在要做列表中。预计文章和图片可以导出,评论暂定没有。

  • Docker 项目中,yarn add 或 Gemfile 里添加新插件时的最佳实践应该是如何的? at July 26, 2021

    我用 docker 的目的之一是统一开发机的开发环境,如果应用跑在宿主机就做不到统一了,例如有的是 Linux,有的是 Mac,那么安装 imagemagick 等系统依赖,编译 gem 包的时候可能有差异。

    风险的话,自己的应用还好,别人的应用要提防应用里面有恶意代码(例如盗取 ssh key)。我发现 vscode 有个好的功能是每次打开新项目会提示是否信任当前目录,如果不信任就不会运行一些需要运行代码的插件。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 23, 2021

    已经加上了 https://geeknote.net/GeekNote/posts/201

  • Docker 项目中,yarn add 或 Gemfile 里添加新插件时的最佳实践应该是如何的? at July 23, 2021

    我开发环境是不安装 gem 和 npm 包到镜像里,而是启动容器之后安装到跟主机目录同步的 /app 文件夹。

    分了几个 stage,base 用来开发;ci 用来跑自动化测试;builder 用来打包静态文件;production 继承 base,只安装必要的 gem 包,直接拷贝 builder 打包好的静态文件,不安装 npm 包。还有优化空间,但不想写得太复杂。

    ### base stage ###
    
    FROM ubuntu:20.04 AS base
    
    ENV DEBIAN_FRONTEND=noninteractive
    
    RUN apt-get update && apt-get install -y --no-install-recommends \
      build-essential \
      curl \
      git \
      gnupg \
      imagemagick \
      libpq-dev \
      nodejs \
      postgresql-client \
      ruby \
      ruby-dev \
      zlib1g-dev
    
    RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && \
      echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && \
      apt-get update && apt-get install -y --no-install-recommends yarn
    
    RUN gem install bundler -v 2.2.0
    
    WORKDIR /app
    
    ### CI stage ###
    
    FROM base AS ci
    
    COPY Gemfile Gemfile.lock /app/
    
    RUN bundle install --deployment && \
      rm vendor/bundle/ruby/2.7.0/cache/*
    
    COPY package.json yarn.lock /app/
    
    RUN yarn install && \
      yarn cache clean
    
    COPY . /app/
    
    ### Budiler stage ###
    
    FROM ci AS builder
    
    RUN RAILS_ENV=production SECRET_KEY_BASE=1 bin/rails assets:precompile
    
    ### production stage ###
    
    FROM base AS production
    
    COPY Gemfile Gemfile.lock /app/
    
    RUN bundle install --deployment --without test development && \
      rm vendor/bundle/ruby/2.7.0/cache/*
    
    COPY . /app/
    
    COPY --from=builder /app/public/packs /app/public/packs
    
    ENV RAILS_ENV=production
    

    docker-compose.yml 要指定 base stage。另外还用了 docker-sync 提高文件同步性能。

    version: '3.4'
    
    services:
      web:
        build:
          context: .
          target: base
        command: bin/rails server -b 0.0.0.0
        environment:
          WEBPACKER_DEV_SERVER_HOST: webpacker
        volumes:
          - geeknote-sync:/app:nocopy
        ports:
          - 3000:3000
        depends_on:
          - postgres
          - redis
      webpacker:
        build:
          context: .
          target: base
        command: bin/webpack-dev-server
        environment:
          WEBPACKER_DEV_SERVER_HOST: webpacker
        volumes:
          - geeknote-sync:/app:nocopy
        ports:
          - 3035:3035
      worker:
        build:
          context: .
          target: base
        command: bundle exec sidekiq
        volumes:
          - geeknote-sync:/app:nocopy
        depends_on:
          - postgres
          - redis
      postgres:
        image: postgres:12
        environment:
          POSTGRES_PASSWORD: postgres
      redis:
        image: redis:5
    
    volumes:
      geeknote-sync:
        external: true
    

    开发的时候先打开一个 shell docker-compose run web bash,第一次安装 gem 用 bundle install --path vendor/bundle,之后就正常 bundle。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 22, 2021

    好,重现了,看来要加个状态判断,我记到 bug 列表。😂

  • GeekNote,一个专为 Geek 设计的博客服务 at July 22, 2021

    有可能是我的锅,看起来像是 js event 重复绑定的现象,但是我这不能重现。如果重现的话回忆一下之前的操作。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 17, 2021

    会加,下周之内。

  • GeekNote,一个专为 Geek 设计的博客服务 at July 17, 2021

    这个在计划列表中,已经不少人提了,我要加紧了。😅

  • Prev
  • 1
  • 2
  • …
  • 13
  • 14
  • 15
  • 16
  • 17
  • …
  • 272
  • 273
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English