Rails 学习 Ruby 的一些感慨,身虽远离,但心未存走远。

yan1667 · 2016年08月24日 · 最后由 hemengzhi88 回复于 2016年09月18日 · 5096 次阅读

一开始进公司,我什么都不懂,老板只给了一本 ruby on rails web 的书,就开始工作了,虽然现在的水平也只是一般般,但是我喜欢 rails 的快捷。但是也正是这种快捷,让我感到了孤独,烦躁和不安,英语水平是硬伤,这就不吐槽了。rails 的定制化太弱了。我吐槽的就两点,一是那个鬼斧神差的 api,真难懂,类型的什么都没有,还有就是定制化,rails 的定制化真的是差的无力吐槽。就拿 smiple_for 在 rails 中的使用。哎,我不知道是我不会用它还是什么情况,从数据库中迭代一些多组 radiobox 出来,然后修改每个选框的 id 为数据库属性,就这点问题,硬是整到崩溃。反而用 form_tag,秒解。就这点,让我决定给表单绑定规定是快捷了。但是定制化真的是要人命。就想买汽车,大家都买 suv 突然有人来要买大货车,rails 这个时候就痛苦万分。捆绑试的语言让人窒息的感觉。调去搞 java 项目了,暂别了,哎,也收到了入职邀请。心有不甘。

smiple_for 先把单词拼对,另外这玩意和 rails 也没有半毛钱关系

谁让你用 simple_form 了?

浮躁,英文不好就怪工具么

Rails is omakase. Rails 无法做到让每个人都喜欢它,你喜欢就用,不喜欢也不必强求自己用,但是在不了解 Rails,甚至用错 Rails 的时候,批判和吐槽是不是过于偏激了,对 Rails 来说是不公平的。

rails 之前我用的是 flask,刚开始学 rails 也是觉得浮躁 路由什么的定制都好麻烦; 但现在知道一些概念:标准、习惯 😁 原来觉得自己定制了老牛逼了 后来发现是自己意淫作怪,那些定制并没什么卵用。 随着越多了解一些特性其实当时的所谓定制都能实现 而且很简单方法就实现了。

form 表单这问题刚开始却是用的很不理解; 我现在不同情况 form_for form_tag simple_for 都会用

有机会参加下当地的 Ruby 社区聚会,当面交流实地看看老手的做法。 另外 Rails 不仅是定制性强,之前因为给 iOS 客户端上实现 自定义 URL 跳转,研究过市面上各语言流行 Web 框架的路由匹配实现,Rails 的思路不仅新颖,而且高效,没有看到其他框架能达到这个高度的。

入门难还是因为领域内的知识不全面,Flask Django 和 Rails 的设计还是有些差距,倒是 PHP 的众多框架,ASP.net MVC 和 Rails 有很多相似的理念(其实不少都是抄的 Rails...),入门起来就很快。一方面是框架的一方面也是 Web 开发相关的吧。

至于你说 form 的问题,Rails guide 的文档里写的非常清楚...

等你回来 😏

为何要用 form_for,看看我 4 年前发的一个小技巧:

https://ruby-china.org/topics/4972

所以,不是那些东西不好用,而是你目前需要做的事情太初浅,你理解不到这些东西存在的价值。

simple_form 则是更上层的东西,它能帮你统一解决:

  • Label 的名称
  • 每行表单的统一格式(实际每个项目绝大多数表单结构都是一样的),同时利用统一调整表单结构
  • I18n 管理方式的 Placeholder 和 说明文字(hint)
  • 更简单的使用方式,绝大多数情况只需要一行,例如 f.input :name
  • 在你不需要的时候,你还可以混写 Rails 默认的 form 写法或 HTML 写法
  • 突然有天要从左右布局(Label 左、文本框右),变成上下布局

例如 GitHub 个人设置这个场景 https://github.com/settings/profile,用 simple_form 能让整个网站有一个非常固定、稳定、不会因为有个别人漏写了几个标签或 class 导致样式不统一的问题。

当然,simple_form 不是适用于所有的场景,如果你的项目表单结构总是不固定的(我认为这是设计有问题!),你不需要它。

分手了不要开喇叭广播前任 XX 不好,XX 不大,XX 不 X。

用 simple_form ,前端不懂 ruby 就看不懂

截取自 rails 5 开发进阶 按照代码结构上,可分为四类:

  • Form Builder
  • Form Helper
  • Form Options Helper
  • Form Tag Helper 按照使用方式不同,又可分为三类:
  • Form Builder 对 Model 依赖最重,表单对象几乎等价于 record 对象。
  • Form Helper 和 Form Options Helper 次之。
  • Form Tag Helper 对 Model 依赖最轻,没有表单对象的概念,操作上几乎等价于 HTML(其实就是语法糖)。

#12 楼 @pengedy 说的真好。

如果你的心真的未曾走远,希望你在这里的收获不仅仅是 Ruby on Rails,还有一种做技术的姿态。

rails 写模板那一套 dsl 还真是有点恶心的

刚刚学习 ruby on rails ,感觉功能强大,公司里都是各种 Gem 插件,确实头痛。但是发现 ruby 语法好像挺 “简单”,但是 rails 却变化万千。

#18 楼 @u1440247613 你也可以完全不用,纯写 html。对比下哪种更繁琐。你也可以涉猎其他 web 框架,PHP 的,Java 的,go 的,nodejs 的,对比下 是否有像 rails 这样定义 view 层的 helper 渲染方法,再看是否 “恶心 “

#17 楼 @lgn21st 这些都是我在 RubyChina 里得到的感悟。感谢有您这样的前辈们为我等晚辈指明方向。

[老板只给了一本 ruby on rails web 的书] , 老板如果一本都不给, 或者不给你来个 1 对 1 喂饭, 你就没办法了吧? 鬼斧神差是什么玩意? 类型的什么都没有, 你在讲笑话? 很奇怪某些人, 不爱一个玩意, 偏到这玩意的爱好者社区去发一些低级的牢骚, 究竟图的是啥?

#22 楼 @chenjau 这种牢骚贴每过一段时间论坛上都会出现的,原因可能是情绪归因吧。人犯了错误第一个想到的是归因到别人身上,同样许多人也会把工作时遇到的不愉快归因到某种语言或者某个同事身上。每个人都有自尊心,有时候这样给自己卸一下压力也不是一件坏事。但是一直害怕接受或者承认自己不足,这样会大大延迟自己成长的速度。。。

从我学习 ruby 经历来看.直接不学明白 ruby 就学 rails.真容易从入门到放弃,rails 高度抽象,总结了各种最佳实践,但是它看似简单,其实很复杂,我就没有着急写东西,而是打好 ruby 基础,多看一些书籍耐心了解 ruby 和 rails.

ruby 看似脚本语言.入门门槛很高的.就好比你是一个篮球初学者.上来就学各种复杂跑位战术和花式单打技巧.你也会感觉有心无力

数据类型先了解下 Ruby,Rails 是 Web 框架,你在 Spring 的指导书里看到过 Java 类型的介绍么 T v T。

浮躁, 就不能静下心来做事情?

https://ruby-china.org/topics/30905

好有趣,点个赞收藏一下。

我只想问一个问题 “未存走远” 是嘛意思

#29 楼 @beiersi 就是说到了存盘点忘了保存就走远了。

#30 楼 @emanon 擦 我要给你 100 个赞

大家都太热情了,太认真了。哈哈,人各有志,不可勉强。

英语不好我理解,毕竟不是母语,可你这明显是国语都有问题啊

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