所以我现在比较喜欢原生
我是比较喜欢放 concern 的 我一般是这样 某个 model 的根据功能划分,比如 student 里 关于考试成绩的相关操作,放一个 concern 之后 选课相关的 再放另一个 concern 之后 include 进来
巧了不是 gorails 最近的视频 就是讲如何不用 js 在 form 里面 实现一次 delete 的 another form 的操作
<%= form_with model: product do |form| %>
<%# rest of the form ... %>
<div>
<%= form.submit %>
<%= button_tag "Delete", form: :delete_product %>
</div>
<% end %>
<%= form_with model: @product, method: :delete, id: :delete_product, data: { turbo_confirm: "Are you sure?" } do %>
<% end %
这个实际是 使用的 html 的特性
我解释下,form 里面的 ButtonTag 会生成一个 Button 但是 由于有 form attribute 实际上他会触发另外一个 form(对应 id)的提交 (如果没有 form 这个 attribute 的话 点击按钮后,他会提交自身所在的这个 form )
之后这个另外的 form 你爱写哪里写哪里,只要在这个页面里就好
以上知识均为 html 知识,不涉及到 rails 本身
ps: 由于 form 的 method 是不支持 delete,所以实际上 底下那个 form 会生成一个 method 为 post 的 但是会在 form 里生成一个 hidden 的 input name 为 _method 值为 delete 这样当提交这个 form 的时候 rails 就会将这个 post 请求 等效于 delete 请求
其实放到内存里 也有这么一个原因 就是 内存比网络快
读 redis 大概率是要跨网络的,会牺牲一定的性能,特别是你遍历数组的时候,每个 item 都要去缓存去拿一个很无聊的数据的时候,网络 io 就是需要考虑的问题了,包括内网
当然 其实绝大多数程序来说 没啥本质的区别 同时 用 redis 还有额外的收益 原子性
“数据库】发布前一定要检查 migration,大表手动处理”
可以试试 这个 gem https://github.com/ankane/strong_migrations
$local_cache = ActiveSupport::Cache::MemoryStore.new
可以划分一块内存,来直接处理
之后默认 cache 是走 redis
但是注意哈,这个内存的缓存 只在 一个 puma 进程种共用
买个周边支持一下
polardb?analyticsDB 囧 rz
国产数据库一般都兼容 mysql 或者 postgres driver 的 直接用就是了
orbstack 装个兼容 amd64 的虚机 之后上面搞
感谢兄弟的付出,ps,油管上传的话会有一点广告收益 可以考虑一下
13 年用 yii 开发程序 听人说 yii 是借鉴的 rails 遂开始自己的项目试着拿 rails 写,接的小业务用 rails 1 个月就收钱了 关键是维护还继续找我
299usd 考虑一下。。。
没有任何问题,可以直接用 jsbuilding 和 cssbuilding 只是一些胶水而已
他们的联系包括 开发时候的启动 以及 precompile 的时候的钩子,其他的都没区别了
需要考虑到 gitlab 也是要赚钱的 毕竟就指望 saas 了
话说 极狐 今年也不容易 希望能走出来
其实这也是我费解的地方 在我的想象当中 kamal 是用在多台机器上的部署
但是感觉连数据库都是直接通过公网 ip 连,而不是通过内网 ip
其实我倒是觉得 pin 加上--download 将 js 静态的提交到 vendors 没太大问题 下载的代码都是压缩过的
主要是国内现有网络条件下有时候并不能保证部署机能够 ready to download those js files,
不如砍掉这个依赖,在开发的时候就确定好。
https://ruby-china.org/topics/43396 参见下我这个帖子里的回复 本质问题是 连 docker 里的数据库问题
jsbundling 我觉得就是一个解决这种撕裂的不错的方式
我们在讨论 生态的 时候,我觉得可能讨论的是 有没有一个行业型的 模版,比如 类似 element 或者 antdesign 用来避免写重复的组件 这方面确实 rails 差一些
只不过我觉得传统里的由前端接管路由的方式 不是一个好方式
正如 rei 所说的 是引用,你可以打印出他的 object_id 进行验证:
3.2.1 :006 > temp = Array.new(3,Array.new(2,false))
=> [[false, false], [false, false], [false, false]]
3.2.1 :007 > temp.each {|line| puts line.object_id }
190820
190820
190820
如果是 不太涉及到交易的,完全可以这么搞,懒得维护数据库就用远程联数据库 并不慢很多
话说我最近有看到一个猛士,听信了 DHH 邪教做法,竟然在自己的办公室弄了个破电脑插了 64G 内存部署了一堆服务,用 ngrok 联到 aliyun 上的一台破 2C4G 的 nginx 跑。。。。。。
钢材不是想卖就能卖的,这行业吃背景很深的,转行去那个行业,只能说他现在的背景也不简单
本质上变回了 docker 网络连接问题
我目前遇到的困难是
rails 无法连接到 accessories 的 db,
我之前都是用 docker-compose 弄的,会自动建立一个 network 实现互联互通
但是 kamal 好像并不是这样的,官方视频中给的例子比较奇葩,是直接远程 ip 连接 db,感觉这种方法不太适合
排除网络影响的情况下,检查 .env 的 KAMAL_REGISTRY_PASSWORD 是否设置正确了
其实推荐问题 1-2 的解决办法 换国内源算了
已更新 问题 4-5
哇 太 cool 了
想开点,这种项目一般是屁股决定脑袋的项目
对接方要是啥都不说,就直接通过了,大几十万都花出去了,他们觉得重要的地方都没解决,这肯定不行。对方也是从自己的角度而不是从程序的角度来想的,程序员逻辑这么强写代码还糊涂呢,别指望提需求的人就一上来就完美需求,这很难
我自己的一点经验就是 要抓住主要矛盾,确实影响功能的,该弄还是给人弄
关键是别让甲方闲住,要给甲方打造,“参与感”一天找他 3 次,没事就问问 这么改行不行,那么改好不好
遇到确实很傻的需求,就拖字诀,开会评审,列清单,工作记得要留痕,清单长到一定的程度后,其实甲方工作量也会很大的
核心点就在于 别只让自己忙起来