gpt4 book ai didi

ruby-on-rails - 创建模型时错误的 rails 复数

转载 作者:数据小太阳 更新时间:2023-10-29 08:19:44 25 4
gpt4 key购买 nike

我在使用 rails 复数时遇到问题。

我有一个名为 CompanySkill 的模型(代表公司拥有的技能)。创建模型时,rails 使用 companies_skill 而不是 company_skills 将其复数化,因此当我需要设置 has_many :company_skills 关联时,rails 不会使用模型。

这个问题的正确解决方案是什么?我想到的是使用变形,但我不知道它是否是正确的解决方案和/或是否有更好的解决方案。

我正在从控制台生成模型:

rails generate model CompanySkill
invoke active_record
create db/migrate/20160511111048_create_companies_skill.rb
create app/models/company_skill.rb
invoke test_unit
create test/models/company_skill_test.rb
create test/fixtures/companies_skill.yml

最佳答案

你有两个选择。

首先,您可以覆盖此名称的变形器。在 config/initializers/inflections.rb 添加以下内容:

ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'company_skill', 'company_skills'
end

或者,也可能是最好的解决方案,您可以在关联上指定类名。在你的模型中使用这样的东西:

has_many :company_skills, class_name: 'CompanySkill'

虽然,正如其他人所说,这两种解决方案都不是必需的,因为 company_skill 默认情况下应由 Rails 复数化为 company_skills

关于ruby-on-rails - 创建模型时错误的 rails 复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37160603/

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