关联不创建方法

时间:2015-11-04 08:43:31

标签: ruby-on-rails ruby-on-rails-4

我有User,Guide和CityObj模型。用户有一个指南,指南属于用户。这允许我使用方法从子进程访问父进程,反之亦然:

a_user.guide
a_guide.user

但是CityObj没有这些方法:

a_guide.cityobj ----> error
a_cityobj.guide ----> error

也许这与骆驼案有关?我似乎正在为User / Guide and Guide / CityObj做同样的事情。

User.rb

class User < ActiveRecord::Base

  has_one :guide, dependent: :destroy

  ...

end

Guide.rb

class Guide < ActiveRecord::Base
  has_one :cityObj, dependent: :destroy
  belongs_to :user

  ...
end

CityObj.rb

class CityObj < ActiveRecord::Base
  belongs_to :guide
end

2 个答案:

答案 0 :(得分:1)

按照惯例,你应该使用 蛇案

a_guide.cityobj
a_cityobj.guide

应该是

a_guide.city_obj
a_city_obj.guide

另外,请将guide.rb模式中的关联更改为以下。

#guide.rb
has_one :city_obj, dependent: :destroy

答案 1 :(得分:0)

正如@Pavan所说,惯例应该是蛇案例,包括文件名和关联定义(以及一般方法)

  • CitObj.rb应为city_obj.rb
  • User.rb应为user.rb

另外:

class Guide < ActiveRecord::Base
  has_one :city_obj, dependent: :destroy
  belongs_to :user

  # ...
end

这将“生成”关联方法,如:build_city_obj等......