【问题标题】:Rails naming convention misconceptionRails 命名约定误解
【发布时间】:2023-01-01 17:15:15
【问题描述】:

我是 Rails 的新手,自从我开始学习以来,我有一个挥之不去的问题.. 在教程中,当他们从 cmd 生成模型(例如用户)时 使用命令 --> “rails 生成模型用户等......” 类名大写开头,文件名小写(user.rb) 在创建关系时,他们使用小写字母 one。 我在网上看过,但这一定是个愚蠢的问题,或者我遗漏了什么。 谢谢!

【问题讨论】:

  • 是的,你的理解是正确的。所以类Company的实例可能是@company,它的雇员是类Employee的实例,并且因为公司has_many :employees我们可以用@company.employees来表示他们。只有类名是大写的。
  • IIRC 您可以将模型名称作为驼峰式或蛇形式传递给生成器,它会根据需要进行转换。

标签: ruby-on-rails ruby


【解决方案1】:

这不仅是 Rails 约定,也是 Ruby 约定。

  • 类和模块名称为CamelCase,例如MyAwesomeClass (reference)。
  • 文件名为snake_case.rb,例如my_awesome_class.rb (reference)。
  • 变量名是小写的snake_case (reference)。
  • 方法名称是小写的snake_case (reference)。
  • 常量(模块或类除外)为SCREAMING_SNAKE_CASE (reference)。

【讨论】:

  • 此外,常量必须以大写字母开头,变量不能以 1 开头。 (否则它们将成为常数)
  • 所以数据库(sqlite)会在我在cmd或小案例中输入它时存储它?因为我查看了架构,它存储为小写字母所以无论我如何输入,它总是小写字母?
  • @AbdullahTaqiedin 抱歉,我错过了你的问题中关于活动记录命名约定的部分。我已经很长时间没有使用活动记录了,但据我所知,活动记录使用lowercase_snake_case作为表名和列名。
  • @AbdullahTaqiedin 蛇形表名(复数)
【解决方案2】:

正如命名约定的注释

Rails 使用约定优于配置,但有时您需要自定义名称

例如

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym "RESTful"
end

如果不使用这样的配置,你需要使用r_e_s_tful.rbRESTful

但是使用它,你可以毫无问题地在restful.rb中定义RESTful

【讨论】:

    猜你喜欢
    • 2011-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-14
    • 2018-07-07
    相关资源
    最近更新 更多