【问题标题】:Rails unorthodox naming of models with abbreviationsRails 非正统的模型命名带有缩写
【发布时间】:2009-10-30 21:11:07
【问题描述】:

在我正在构建的应用程序中,我使用acts_as_tree 关联将XML 文件存储在我的数据库中。我想将这个类命名为 XMLElement ,但这会引起障碍,因为大写是非标准的。它正在从文件名xml_element.rb 中寻找XMLElement。我尝试将文件名更改为x_m_l_element.rb,试图欺骗它认为“XML”实际上是两个词,但这也不起作用。我是不是应该接受它并使用名称XmlElement 而不是更理想的XMLElement,还是有更好的方法来解决这个问题?

【问题讨论】:

  • 您说:> 但这也不起作用 当您尝试此操作时出现什么问题? [我们有一个ABExperiment 类,其中AB 不是首字母缩写词,所以我们不想使用下面提到的inflect.acronym 解决方案。]

标签: ruby-on-rails model naming-conventions


【解决方案1】:

将以下内容添加到config/initializers/inflections.rb

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.acronym 'XML'
end

现在运行$ rails g model XMLElement… 将在名为xml_element.rb 的文件中创建一个名为XMLElement 的类和一个关联的表xml_elements

【讨论】:

    【解决方案2】:

    配置人的约定。吸一口吧。

    【讨论】:

    • 我认为这是最简单的解决方案,但我不知道是否有配置它的方法,例如,Rails 允许您配置数据库表的名称,如果您有一个名称喜欢更好,所以我认为也可能有一种方法来配置它。我认为没有?
    • 检查下面的答案,您可以为此使用 ActiveSupport 变形器
    【解决方案3】:

    是的,您应该使用 XmlElement。

    不仅对于这个示例,而且对于应用程序的每个方面,它都不会因为偏离惯例而有所回报。在 Rails 的引擎盖下有太多的“魔力”,根本不值得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-10
      • 1970-01-01
      • 1970-01-01
      • 2017-06-29
      • 2012-07-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多