Rails设置了在简单表单关联中使用的范围

时间:2013-08-02 15:36:18

标签: ruby-on-rails

我有一个表格,我希望将新发票与工作人员相关联,这些工作人员具有外部类型(工作订单belongs_to类型)(类型中的布尔字段称为内部)。

这是我想要的代码:

<%= f.association :workorder, :collection => Workorder.external, :label_method => :wonum_desc, :label => 'Work Order' %>

所以,我正在尝试在workorder模型中设置一个名为external的范围。

这给了我'未定义的内部方法':

scope :external, where(:type.internal => false)

感谢您的帮助!

1 个答案:

答案 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)