gpt4 book ai didi

ruby-on-rails - ActiveRecord 如何从单数(类)和复数(表)推断映射;并且可以覆盖吗?

转载 作者:行者123 更新时间:2023-12-04 06:10:31 25 4
gpt4 key购买 nike

ActiveRecord 如何从单数(类)和复数(表)推断映射,例如:

People = Person
Ducks = Duck
Geese = Goose
Categories = Category

在概念上似乎是一个不错的主意,但不知道我是否必须映射单数(类)和复数(表)实例,或者 ActiveRecord 是否“神奇”地做到了这一点。另外,当必须对一个不像添加“s”那么简单的名称进行复数化时,这似乎可能会导致更多的开销。

注意:将此问题的第二部分移至此处: Does ActiveRecord assign a key to every table using the naming convention “ID”, and if so, why?

最佳答案

Rails 使用 ActiveSupport::Inflector 来跟踪单词以及如何更改它们。例如,Rails 会知道将 UserPreference 存储在 user_preferences 中

您还可以将一个拐点添加到拐点以处理添加 s 没有意义的奇怪情况。

在/config/initializers/inflections.rb 中,您将获得以下内容:

ActiveSupport::Inflector.inflections do |inflect|
inflect.plural /^(ox)$/i, '\1en'
inflect.singular /^(ox)en/i, '\1'
inflect.irregular 'person', 'people'
inflect.uncountable %w( fish sheep )
end

http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html

关于ruby-on-rails - ActiveRecord 如何从单数(类)和复数(表)推断映射;并且可以覆盖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4421848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com