我有一个表格,我希望将新发票与工作人员相关联,这些工作人员具有外部类型(工作订单belongs_to类型)(类型中的布尔字段称为内部)。
这是我想要的代码:
<%= f.association :workorder, :collection => Workorder.external, :label_method => :wonum_desc, :label => 'Work Order' %>
所以,我正在尝试在workorder模型中设置一个名为external的范围。
这给了我'未定义的内部方法':
scope :external, where(:type.internal => false)
感谢您的帮助!
答案 0 :(得分:1)
您必须包含Type模型,然后在Type表的内部字段中添加条件:
scope :external, includes(:type).where(types: { internal: false })
# notice the syntax: ^^^^ ^^^^^
# in includes/joins, use the relation's name (here, Workoder belongs_to :type)
# in where, use the table's name (usually the pluralized version of the relation)