【问题标题】:Ruby on Rails commands and conventions - what are they?Ruby on Rails 命令和约定——它们是什么?
【发布时间】:2012-03-08 14:42:19
【问题描述】:

我已经用 PHP 和 MySQL 制作网站近十年了,但我从未使用过框架。这意味着我已经对所有内容进行了手工编码,并且我知道代码如何工作以及如何与自身交互。

想要扩展我的视野,我选择了 Ruby on Rails 来学习另一种 Web 语言、框架、数据库等。我一直在关注 Ruby on Rails 教程,到目前为止进展顺利,但有什么困扰我黑匣子的感觉。有太多的魔法,事情发生只是因为它确实。这种“魔法”的例子包括,如果我突然添加到路由文件“resources:users”,我有几乎无限可能的链接,如 /new /user/1 /user/1/edit 等。或者如果我想在我的数据库表中添加一列我必须在控制台“rails integration _to_table value:type”中执行类似的操作,然后我必须“rake”数据库。

我已经能够按照教程制作东西,但我不明白我在做什么。我知道其中一部分将来自经验,但我想知道 Rails 是如何以及为什么这样做的。

有哪些好的资源(在线资源和书籍)可以让我了解 RoR 的工作原理?

【问题讨论】:

  • 那里的配置规则约定
  • Ruby 由于其灵活性,该语言可能看起来也很神奇,因此 Ruby-on-Rails 的魔力在某种程度上源于 Ruby 的魔力。学习(真的)ruby 会让你更好地理解 RoR(或其他 Ruby 框架)。
  • Rails conventions上也可以看到这个问题
  • 许多“魔法”/约定都是通过使用 Ruby 元编程功能而产生的,您可能会发现实用程序员的书“元编程 Ruby - 像 Ruby Pros 一样的程序”很有用。

标签: ruby-on-rails ruby ruby-on-rails-3 convention-over-configur


【解决方案1】:

是的,要知道所有的魔法是什么需要一段时间,但如果你坚持下去,你最终会到达那里。

ruby on rails 开发的“圣经”是http://pragprog.com/book/rails4/agile-web-development-with-rails

Ruby 语言本身的“圣经”是“pickaxe”书,由 Ruby 语言作者本人贡献。 http://www.amazon.com/Ruby-Programming-Language-David-Flanagan/dp/0596516177

Ryan Bates 已经完成了数百次免费的 sceencast,他以拥有非常出色的方法、有效地使用框架而闻名。每个好的红宝石都对这些评价很高。 http://railscasts.com/

许多人发现“僵尸”课程非常好。 http://railsforzombies.org/

最后,我将提供我自己的书签网站,其中包含 50 多个 Rails 网站:
http://www.rormd.com/linker/groups/1

还有 20 多个 ruby​​ 网站
http://www.rormd.com/linker/groups/4

在您学习时,一个好的 IDE 可以帮助您很多。我使用了 eclipse,然后是 netbeans,然后是 ruby​​Mine(来自我们在 IntelliJ 的朋友,以他们的 java 编辑器而闻名。rubyMine 具有最多的功能。它不是免费的,而是价格(在 24 美元到 75 美元之间,具体取决于特殊情况)优惠) 物有所值。

【讨论】:

    【解决方案2】:

    如果他们想在 Rails 上学习 Ruby,即使不了解 Ruby,这也是为新手准备的。我可以说先试试这个,然后再看其他书。

    只需点击下面的链接,就会看到有两个适用于 Ruby on Rails 3.0 和 3.2 的教程

    Ruby on Rails Tutorials link for Rails 3.0 and 3.2

    对于那些不需要 Ruby 背景的教程

    即使我喜欢Head First Rails,这本书也很适合理解——只有rails(没有TDB),所以初始你可以在rails环境中设置,然后跳转到上面的教程链接

    【讨论】:

    • 这其实是我一直在关注的教程,但是发现“魔法”太多了。
    【解决方案3】:

    您可以在 Github http://github.com/rails/rails 上查看完整代码。

    Jose Valim Book Crafting rails application 也有助于了解 Rails 的很多内部内容

    【讨论】:

      【解决方案4】:

      我想说,使用“黑盒”和“魔法”这两个词是很不恰当的,甚至可能有点贬义。我相信您感受到的不同之处在于 Ruby 是一种与 PHP 非常不同的语言,并且在 Ruby 中编写高级抽象和约定比在 PHP 中更容易。 Rails 充满了这些抽象和约定,这些可能会让人很困惑,特别是如果您不知道它们的内部工作原理。

      也许您应该阅读的不是关于 Rails 的内容。我会说你应该首先尝试理解 Ruby。必须对它的块、它的对象模型和它的 mixin 有一个很好的理解,才能消除“黑盒”的感觉。

      使用现代编程语言进行编程并不是黑魔法。 Debugging Fortran code by printing the code and using crystals over the papersheets to find the bugs was.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-05-28
        • 2020-08-24
        相关资源
        最近更新 更多