我太久没用 brew 了,确实忘了要执行这个:
If you need to have ruby first in your PATH, run:
echo 'export PATH="/opt/homebrew/opt/ruby/bin:$PATH"' >> ~/.zshrc
如果只想用 brew 管理的最新版本 ruby,就不需要用带版本号的 PATH。
如果你用某一个管理工具安装成功了,那很好,先继续学习。
我在这些管理工具踩过不少坑,怕了这些自动改环境变量的工具,再也不想花时间在这上面了。
很遗憾楼主最终没解决,我推测问题是出在编译工具和环境,这个换什么管理工具都是一样的。但不实地操作我也不知道怎么修复。
我要补充一下,对于新手来说最简单的方法是使用 homebrew:
brew install ruby
为了配合某些 Rails 教程版本,brew 可以安装特定版本 Ruby:
brew install [email protected]
brew 也可以安装 libpq
libvips
之类的编译依赖,对于初学环境已经够用。
如果要维护老项目,需要安装特定的包和依赖,去用 docker 和 docker compose,这是终极方案。
如果不是很熟悉 Linux 环境或者机器性能不好,别用 rvm、rbenv、asdf 这类基于环境变量的版本管理工具,很容易把环境变量搞得一团糟。
看起来只要一编译就卡住?
看看 xcode-select -p
的输出,我的是
/Library/Developer/CommandLineTools
sudo xcode-select --resst
可以重置。
另外编译的时候检查内存和硬盘有没有耗尽。
删掉 /opt/homebrew/lib/ruby/gems/3.3.0/
,我看一些 build 目录在 gems 外面,应该已经被污染了。
还有我最近处理过一个 Ruby 安装问题是混用了不同的安装器,然后环境变量一团乱,最后把所有安装器卸载干净清理多余的环境变量,再重装 homebrew 和 ruby 解决的。
目录权限错乱了,本来 brew 目录下是 user 权限的,执行过一次 sudo 创建了 root 权限的目录,后续写入卡住了。
删了 /opt/homebrew/lib/ruby/gems/3.3.0/gems/
重新装 gem 也许有用,但不知道还有没有其他目录权限错乱。不行再删除 ruby 看目录清空了没有,再重新安装 ruby。
brew 安装的 ruby 不要用 sudo,它安装目录是属于用户的。
xcode-select --install
再尝试安装 Railsrails 7.2 将会添加可选的 devcontainer 配置 https://rubyonrails.org/2024/5/24/this-week-in-rails
这比自己写 docker compose 更方便一些,但不是所有编辑器都支持 devcontainer。
我用 docker 很久了,印象中用 homebrew 也没遇到什么问题。贴的日志太少无法判断。
找到一本 hotwire 的书,我还没看 https://www.hotrails.dev/
这个作者写了一篇博客怎么用 hotwire 思维做一个搜索框值得参考 https://world.hey.com/alexandre/how-to-build-a-cmd-k-search-modal-with-hotwire-981f5159
比如: “搜索框,输入内容按回车,跳转搜索链接/search?q=keyword”, 需要在 erb 和 stimulus 的 controller 里面写不少代码。
这不只是 get 表单么?
用 npm 装包,在 tailwind config 里面 require 可以正常使用。
挖了一下:
36 氪 2012 年度改版后是从 ruby-china 开源代码上构建的。
https://ruby-china.org/topics/13071#reply-134521
现在不知道了。
python?! 我们中出了叛徒
恢复了,估计是看错了。
对我来说,依然是 Rails 更好。
docker 的 Ruby 镜像和 Ruby 官方的 docker 镜像都是 debian 系的,从 debian 入手以后平滑过渡。
没内容连水都不是,浪费点击。
不是对区块链有仇,而是以往放纵了你的水贴,从以下这贴起已经引起其他人不满,所以开始严格执行。
https://ruby-china.org/topics/43454
屏蔽理由已留:标题或正文写得不清楚。水别的一样会处理。
我这里测试风险标签已经去掉。
我已经提交了申诉,看看后续如何。
现在有多名管理员经常看版面,垃圾内容应该不会存在超过 24 小时,如果有漏网之鱼可以在评论区 @Rei
ActionCable 有一个 postgres adapter,不过很少人用 https://github.com/rails/rails/blob/main/actioncable/lib/action_cable/subscription_adapter/postgresql.rb
Rails 里面不用定义,ActiveRecord 是动态读取数据库里面的表信息。你需要为外部数据库的表创建 model,并且设置连接信息,不需要 migration。
搜了个例子 https://stackoverflow.com/a/35492504
你可以跟 python 项目约定好命名规则,id 用 id 整数递增,字段名用下划线,这样就可以很大程度兼容 AR 的约定。然后给 Rails 项目开一个只读权限账号,避免 Rails 项目不小心写入。
Rails 可以同时连接多个数据库。如果 python 子系统的数据没什么兼容问题,可以不导入直接读。
caddy 在申请证书前可以访问后端 api 检查的。
现在放在国外,必要时再开国服。
提醒一下 CF proxy 的灵活模式,CF 到你服务器之间的流量没有加密,数据可能会被中间代理记录。建议用完全模式,在 CF Origin Server 管理页生成一个证书配置到 caddy 上。
https://developers.cloudflare.com/ssl/origin-configuration/ssl-modes/full/ https://developers.cloudflare.com/ssl/origin-configuration/origin-ca/
对于二级域名,你需要在 CF 的 DNS 中添加名称 *
A 记录到你的 IP。
还有你先要确定是用 CF 处理证书还是 Caddy 处理证书,你现在是用 CF 处理证书,不需要看那篇 Caddy 的文章。
CF 处理证书,用 CF proxy 模式,添加自定义域名的时候用 CF API 添加。
Caddy 处理证书,用 CF DNS only 模式,没有 CF 防护,添加自定义域名按上面的文章配置自动处理。
是的,好像 Testing View Partials 也是新加的 https://guides.rubyonrails.org/testing.html#testing-view-partials