Rails 项目练手,求指导~

july_12 · 2024年05月12日 · 最后由 smallx 回复于 2024年05月14日 · 530 次阅读

好久没写 rails 了,想重新捡起来

于是最近模仿 ruby-china,断断续续写了一个多月的小 bbs 项目,还有很多地方需要完善。

整个过程的开发体验还是那么爽那么流畅。

开发感受最深的一点是,如果不引入前端框架,光用 stimulues 来实现一些交互功能还是有点费劲的。

比如: “搜索框,输入内容按回车,跳转搜索链接/search?q=keyword”, 需要在 erb 和 stimulus 的 controller 里面写不少代码。

但如果太多交互都用前端框架实现,项目本身会有演变成前端后分离之势,从而丢掉在 rails 中使用 hotwire 工具集来进行 spa 开发体验的那套优势(eg: 广播、局部更新等)。

项目地址: https://github.com/july-12/BBS

比如: “搜索框,输入内容按回车,跳转搜索链接/search?q=keyword”, 需要在 erb 和 stimulus 的 controller 里面写不少代码。

这不只是 get 表单么?

Rei 回复

这是常规操作吗😂 ,可以不用 stimulus,那我思维还是偏前端了。

july_12 回复

这个甚至不需要 JavaScript

july_12 回复

如果考虑后续迭代,其实你的思维更好一点,比如现在是回车搜索,后续如果需求变更,变成了「一边输入一边展示实时搜索结果」,用 form 和 turbo 这一套就很痛苦了。

甚至要求可能还更多,比如节流、防抖、loading 状态展示、如果第二个请求的 response 比第一个 response 先返回了怎么办?这些用 form 表单就没法做了,只能在 js 的基础上进行扩展。

willx 回复

我觉得 form 和 js 不冲突,两者可配合使用。form 负责向后端发送查询参数,js 负责组织查询参数。

找到一本 hotwire 的书,我还没看 https://www.hotrails.dev/

这个作者写了一篇博客怎么用 hotwire 思维做一个搜索框值得参考 https://world.hey.com/alexandre/how-to-build-a-cmd-k-search-modal-with-hotwire-981f5159

july_12 回复

感觉你没太看明白我的意思😂 我说的是控制粒度的问题,form 粒度太粗了,需求稍微一复杂就顶不住了

不错。学 Ruby 是个明智的选择。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号