【问题标题】:Naming/Capitalization usage in Ruby on Rails 4Ruby on Rails 4 中的命名/大写用法
【发布时间】:2015-02-15 17:55:54
【问题描述】:

令不少人失望。我决定学习 Ruby on Rails(很多人告诉我学习它没有意义,但是 ruby​​ 似乎很容易上手,而且 rails 是一个有趣的框架)。

所以我现在才慢慢开始围绕命名约定,将单数用于模型,将复数用于控制器。

我在查找简明信息时遇到了一些麻烦,那就是大写与小写的用法。

例子是

@order = Order.create(order_date: Time.now, customer_id: @customer.id)

为什么“Order.create”是大写的,而不是“order_date”?

当我使用 rails 控制台时,何时调用大写真的让我感到困惑。我不知道我什么时候应该大写或为什么。我想说这也与模型/控制器命名方案有关,但它们都不是复数,所以不能作为答案吗?

感谢您提供的任何帮助,我真的/非常感激。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4


    【解决方案1】:
    • CamelCase 用于类和模块(例如StringArray 等)
    • snake_case 用于变量和方法(符号通常也为snake_case
    • SCREAMING_SNAKE_CASE 用于命名常量(例如STDOUT

    【讨论】:

    • 从未听说过 SCREAMING_SNAKE_CASE 被称为 :) 但似乎足够了。
    【解决方案2】:

    这与 Ruby 和/或 Rails 中的命名约定有关。

    通常:

    • 使用CamelCase 创建类、模块。
    • 使用underscore_case创建方法、变量。
    • 使用UPPER_UNDERSCORE_CASE 创建常量。

    看看ActiveSupport 中可用的不同方法将字符串转换为各种情况。 http://apidock.com/rails/v4.1.8/String/camelize

    Read Naming and Schema Conventions at Rails Guide.

    A more succinct information.

    HTH

    【讨论】:

    • 感谢您提供的资源。在一些好的 Rails(和 Ruby)阅读材料上找到另一个线程,并将这些添加到列表中。我目前失业,所以我每天要花 8 小时以上的时间在这上面。所有的答案肯定有帮助。厌倦了被告知我不会学习编程。
    【解决方案3】:

    这实际上更像是一个红宝石。在 ruby​​ 中,您对类和模块名称使用大写(驼峰式)。以及用于方法和变量名称的 snake_case。

    在您的具体情况下,Order 是一个类,create 是一个方法,@order 是一个实例变量。 order_date 和 customer_id 是代表数据库中列的符号。

    【讨论】:

    • 谢谢,我也想问一下@order。那么像局部变量这样的实例变量只在它们定义的地方工作是正确的吗?
    • 实例变量在对象的上下文中可用。顾名思义(一个类的实例 -> 一个对象)。
    猜你喜欢
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多