如何使用simple_form创建一个与has_many绑定的记录

时间:2017-03-23 01:31:10

标签: ruby-on-rails ruby ruby-on-rails-5

在模型中,我有如下关系:

has_many :commercial_evaluators, -> { where("evaluators.type = 'commercial'")}, through: :evaluators, source: :user

在视图中我使用如下简单形式:

= f.association :commercial_evaluators,  collection: User.staff, label_method: :email 

并按预期提交表格:

"commercial_evaluator_ids"=>["", "11", "13"]

但它只会像普通人那样通过没有条件的关联来创造。

enter image description here

我使用了cocoon gem,它允许嵌套字段,我知道它会起作用。但这种解决方案有没有更简单的方法呢?

2 个答案:

答案 0 :(得分:2)

正如评论中所提到的那样,这些关联的范围在"阅读"记录,而不是"写"它们。

答案 1 :(得分:0)

使用此

将您的模型Evaluator扩展为CommercialEvaluator。

class CommercialEvaluator < Evaluator
end

然后在你希望关系使用的模型中。

has_many :commercial_evaluators, source: :user