首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Rails连接表名称错误

Rails连接表名称错误
EN

Stack Overflow用户
提问于 2014-09-06 14:09:48
回答 1查看 135关注 0票数 0

我在试着让接线桌正常工作。我有三种模式:专业,技能和交叉参考表ProfessionalsSkills。

专业模式

代码语言:javascript
运行
复制
class Professional < ActiveRecord::Base
    has_many :professionals_skills
    has_many :skills, :through => :professionals_skills
end

技能模型

代码语言:javascript
运行
复制
class Skill < ActiveRecord::Base
    has_many :professionals_skills
    has_many :professionals, :through => :professionals_skills
end

交叉参考表

代码语言:javascript
运行
复制
class ProfessionalsSkills < ActiveRecord::Base
    belongs_to :professional
    belongs_to :skill
end

在Rails控制台中

代码语言:javascript
运行
复制
irb(main):005:0* @x = Professional.find(1)
  Professional Load (0.1ms)  SELECT  "professionals".* FROM "professionals"  WHERE "professionals"."id" = ? LIMIT 1  [["id", 1]]
=> #<Professional id: 1, gender: 1, first_name: "Goofy", last_name: "Muff", date_of_birth: "1985-07-20 00:00:00", email_address: "example@example.com", city_id: 1, created_at: "2014-09-06 13:04:57", updated_at: "2014-09-06 13:04:57">
irb(main):006:0>

但是..。当我尝试:

代码语言:javascript
运行
复制
@x.skills

NameError: uninitialized constant Professional::ProfessionalsSkill
    from /Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.5/lib/active_record/inheritance.rb:133:in `compute_type'
    from /Library/Ruby/Gems/2.0.0/gems/activerecord-4.1.5/lib/active_record/reflection.rb:221:in `klass'...

我做错了什么?我正在使用Rails 4.1.4

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-06 14:41:33

问题是模型应该是单数形式,如果你仔细观察错误,它说。

代码语言:javascript
运行
复制
NameError: uninitialized constant Professional::ProfessionalsSkill

注意ProfessionalsSkill而不是ProfessionalsSkills

您需要将模型重命名为单数形式,也需要重命名表,以匹配rails约定。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25701118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档