Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
spike76
@spike76
Member
NO. 33805 / 2017-12-19

[email protected]
5 Topics / 268 Replies
14 Followers
2 Following
91 Favorites
Read the god damn error message!
No GitHub.
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 在一个项目中同时实现“后台管理系统”和“前台应用” at October 28, 2022

    一楼老哥其实想问的应该是“前后台(前台和管理后台)是否分开部署”,而不是”前后端分开部署“😁

  • 最新版本 Rails 7 生成项目报错 at October 26, 2022

    上 WSL、docker 或者虚拟机

  • Ruby 有协程吗? at October 08, 2022

    fiber ?

  • 怎样使 Sidekiq 的任务一个一个执行 at September 16, 2022

    放在一个队列,然后只给一个线程执行这个队列?

  • 推荐三个教小孩学编程的 App at September 15, 2022

    很好,我选择 steam

  • Towards Ruby 4 JIT / RubyKaigi 2022 at September 14, 2022

    Wish!

  • 大家觉得在 Rails 端生成带类型的前端 API 调用代码有搞头吗? at September 11, 2022

    我感觉这种方式几乎是直接把后端的模型暴露给了前端

    它实际是多抽象了一层(GraphQL 里叫 type,JSONAPI 里应该叫 resource)。由于可以使用框架命令根据 DB schema 来生成这一层的内容,所以看起来像是暴露了模型。然而实际在项目里必然会更改这些生成的代码,删除大量的 meta data 字段,重新定义字段

    跟传统 API 的区别在于,传统 API 返回的某些字段可能是后端计算之后返回的,也就是说返回的 JSON 结构跟后端模型结构并不是完全一致的

    拿 GraphQL 举例,type 中的字段逻辑是可以自定义的,当前端想要 full_name, 而数据库只有 first_name 和 last_name,完全可以在对应的 type 中定义一个 full_name 字段。前端想要日期格式的 created_at, 而 DB 只有 time 格式的 created_at, 也可以在对应的 type 中转换。甚至你也可以完全定义一个不对应任何模型的 type 出来。所以只要后端肯干,完全可以不把业务逻辑交给前端。

  • 接口可以进行拼接的吗? at September 01, 2022

    Graphql 就把当前问题搞大了点,相信楼主没有时间去改造框架,也很难短时间说服前端去用 Graphql。

    感觉这个问题主要看前后端谁是主导地位,前端主导的话,估计就要单写个聚合接口了(面向 UI 设计接口)。后端主导的话,如果其他几个接口没有互相依赖的话,可以酌情复用接口。前后端谁也说服不了谁的时候,于是就出现了数据中台。。。但是一般小公司也不会有中台

  • ruby 学习环境搭建(wsl+ubuntu+ruby+rubymine+debug) at August 18, 2022

    不需要这么复杂,直接用宿主机的 ip 地址即可,在 zshrc 中加一段脚本设置代理地址

    host_ip=`tail -1 /etc/resolv.conf | cut -d' ' -f 2`
    export ALL_PROXY=$host_ip:7890
    
  • 晒农具:分享一些有趣的效率软件 at July 30, 2022

    好。俺也来补个

    • Grammarly:免费版就能在输入时自动纠正普遍的英文文法错误,单词错误。在 github 上和 slack 里都挺好用
    • SwitchyOmega:管理浏览器的代理,配置哪些网站应该走代理。不至于听歌听着听着就把代理流量用完了
    • Pocket:当网页剪藏用
  • Ruby2.7 irb paste long text error at July 26, 2022

    一个思路,没试过:tmp 目录下建个临时文件,往里面写临时代码,在 console 里面读该文件再 eval

  • 求助:怎样将搜狗词库 scel 格式文件转为 txt? at July 16, 2022

    每两个字节一个字符(中文汉字或者英文字母)

    utf-16?

  • 讨厌 Ruby 的人数已超过喜爱 Ruby 的人数 at June 25, 2022

    排后的还有 C++,C,java,php,lua。。。

  • ruby 3.2 代码脚手架生成的 sql 默认主键为空导致报错有人知道怎么设置主键为非空么 at June 08, 2022

    https://stackoverflow.com/questions/40758226/mysql2error-all-parts-of-a-primary-key-must-be-not-null-if-you-need-null-in

    直接加了个全局补丁。看起来是老版本对 mysql 的适配有问题

  • ruby 3.2 代码脚手架生成的 sql 默认主键为空导致报错有人知道怎么设置主键为非空么 at June 08, 2022

    快十年前的版本了哦。。。

    手动改改 migration 文件应该就行。不知道为啥 3.2 的版本生成的主键会 default null

  • 新手问题:Capistrano 部署报错 at June 06, 2022

    盲猜 nginx 配错,请求没有转到 rails。看看 rails 日志有没有收到请求

  • 新手部署 Rails 过程中遇到的 Ubuntu 18.04 安装 Nginx + Passenger 失败问题 at June 05, 2022

    你这学习教程有点老哦。多年前开始 rails 自带的 web 服务器就是 puma 了,不折腾

  • array.empty?耗时多久 at May 19, 2022

    差别能有 0.4 秒

    所以到底谁快谁慢?

    贴个 benchmark 代码呗,也许其他人试着跑跑结果会不一样

  • 一些奇怪的 Ruby 行为 at May 19, 2022

    从没见过真实项目中在 def 里嵌套 def。要达到同样的意图,在 def 里写 define_method 会更合适吧

  • 关于自动加载:require_dependencies 的问题 at May 18, 2022

    这排版真是看得头大。参考排版

    Projects.method(:require_dependencies) 就能打印 require_dependencies 方法定义在哪了

  • 纪念一下,终于通过了 google adsense 的审批 at May 16, 2022

    这是要发财呀。羡慕

  • 求助使用 pg 包连接 postgres 的问题 at April 16, 2022

    确定服务器没开防火墙??

  • 宿主机中的 nginx 怎么访问 docker 容器中的 public assets 文件? at April 14, 2022

    据我所知,不能把这个关系反过来。

  • 宿主机中的 nginx 怎么访问 docker 容器中的 public assets 文件? at April 14, 2022

    是有这个问题,挂载时的内容会以宿主机为准,若挂载时宿主机的/data/public 是空的,那么/home/app/ntwebsite/public 也是空的。之后在容器中从新编译静态文件到 public 目录,就能在宿主机看到文件了

  • 宿主机中的 nginx 怎么访问 docker 容器中的 public assets 文件? at April 14, 2022

    -v 把宿主机文件夹与容器的文件夹做个映射?

  • 现在大家都在用什么软件做 Ruby on Rails 的 IDE? at April 12, 2022

    当初就是因为 vscode 没办法直接跳转到 gem 源码放弃了,还是转回了 rubymine。不知道为啥这么重要的功能 vscode 不支持。借楼问问 vscode 上各位是怎么处理这种需求的

  • Ruby 怎么就是网红了? at April 07, 2022

    如果 Ruby 继续保持过去十年来的衰落趋势,那各位一定要认真考虑学习这门语言的风险

    我觉得原文这话说的有点。。。想象力?原作者不仅定义了“网红”,还定义了“风险”。

    我在想原作者是不是收到个命题作文的要求,硬给凑了一篇。

  • 想请教一下关于 gem 源码的问题 at April 04, 2022

    确定是模仿这个 gem 再“写”一个 gem 包?而不是“用”这个 gem 包写个工具😅 ??

    要真是前者,我很想知道你老师对工作难度的评估是怎样的。即使对工作几年的人来讲,重写一个偏底层 gem 也够喝一壶的了。对一个大二刚学 ruby 没多久的人,这个需求实在是强人所难

  • 关于单表继承删除 super record 的问题 at April 04, 2022

    我刚刚试了一下,在 db 层做级联删除,rails 日志里面也会体现删除连结表记录的

    你贴的删除日志应该不是因为 db 层的级联删除打印的,而是 rails 在模型层做的删除打印的。

    我基本复制了 8 楼老哥的代码(rails 6.1),但修改了一些,创建中间表时直接使用 create_table, 且没有使用外键和级联删除的配置,如下:

    def change
      create_table :courses_teachers do |t|
        t.belongs_to :course
        t.belongs_to :teacher
    
        t.timestamps
      end
    end
    

    在 destroy person 对象后,依然能自动删除掉中间表。

    2.7.2 :002 > Person.first.destroy
      Person Load (0.4ms)  SELECT "people".* FROM "people" ORDER BY "people"."id" ASC LIMIT ?  [["LIMIT", 1]]
      TRANSACTION (0.1ms)  begin transaction
      Teacher::HABTM_Courses Destroy (1.2ms)  DELETE FROM "courses_teachers" WHERE "courses_teachers"."teacher_id" = ?  [["teacher_id", 2]]
      Teacher Destroy (0.2ms)  DELETE FROM "people" WHERE "people"."id" = ?  [["id", 2]]
      TRANSACTION (1.8ms)  commit transaction
     => #<Teacher id: 2, name: "spike", type: "Teacher", created_at: "2022-04-04 10:39:31.226942000 +0000", updated_at: "2022-04-04 10:39:31.226942000 +0000">
    

    也许你需要一个更纯粹的代码例子来排查问题,你最初的代码里应该有其它的差异

  • 关于单表继承删除 super record 的问题 at April 04, 2022

    直接加 on_delete: :cascade 的选项实际是在 DB 层做的级联删除,不是由 rails 在模型层做的删除,rails 日志应该不会体现 DB 层删除子记录。8 楼老哥的日志是能看到子记录和父记录放在同一个事务中的删除,所以你俩的代码其实不一样。(不排除版本差异问题)

    不过确实能实现效果,而且这种形式是 gitlab 更倡导的级联删除方式。

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