has_and_belongs_to_many 上的 find() 不返回关联
我有一个 has_and_belongs_to_many 关系:
class Staff < ActiveRecord::基础 has_and_belongs_to_many :服务
类 Service < ActiveRecord::基础 has_and_belongs_to_many :staffs
和我有一个名为“services_staffs”的表,其中包含 service_id 和 Staff_id 列
但是当我执行 Services.find(:all) 时,它不会返回员工(我可以通过使用“inspect”进行调试来看到这一点) 当我执行 @services.staffs (其中 @services 是 Services.find(:all) 的结果)时,它显示“未定义的方法‘staffs’”
知道问题可能是什么吗? 谢谢!
I have a has_and_belongs_to_many relationship:
class Staff < ActiveRecord::Base
has_and_belongs_to_many :services
class Service < ActiveRecord::Base
has_and_belongs_to_many :staffs
and I have a table called 'services_staffs' with columns service_id and staff_id
But when I do Services.find(:all) it's not returning the staffs (I can see this by debugging with 'inspect')
And when I do @services.staffs (where @services is the result of Services.find(:all)) it says 'undefined method `staffs''
Any idea what the problem could be?
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您正在尝试调用属于单个 Service 实例一部分的方法。
@services.first.staffs
将返回第一个服务的可枚举员工。如果您想返回整个服务集合的员工,您可以执行类似 @services.map(&:staffs) 的操作,它将返回一个多维数组。You are trying to call a method that is part of a single instance of Service.
@services.first.staffs
will return the first service's staffs enumerable. If you want to return staffs on the entire services collection, you could do something like @services.map(&:staffs), which will return a multi-dimensional array.