2 ruby ruby-on-rails ruby-on-rails-4
我有rails复数的问题.
我有一个名为CompanySkill(代表公司拥有的技能)的模型.在创建模型轨道时使用companies_skill 而不是将其复数化company_skills,因此当我需要设置has_many :company_skills关联轨道时,不使用该模型.
这个问题的正确解决方案是什么?我想的是使用变形,但我不知道它是否是正确的解决方案和/或有更好的解决方案.
我正在从控制台生成模型:
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
Run Code Online (Sandbox Code Playgroud)
你有两个选择.
首先,您可以覆盖此名称的变形器.在config/initializers/inflections.rb添加以下内容:
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'company_skill', 'company_skills'
end
Run Code Online (Sandbox Code Playgroud)
或者,也许是最好的解决方案,您可以在关联上指定类名.在您的模型中使用以下内容:
has_many :company_skills, class_name: 'CompanySkill'
Run Code Online (Sandbox Code Playgroud)
虽然,正如其他人所说的那样,这些解决方案都不应该被要求,因为默认情况下company_skill应该由Rails复数company_skills.
| 归档时间: |
|
| 查看次数: |
1747 次 |
| 最近记录: |