0

我正在尝试学习如何在我的 Rails 5 应用程序中使用模型关注点。

我有一个嵌套模型:

class Stance::Cost < ApplicationRecord

    include HasCostPolicy

    belongs_to :organisation, inverse_of: :cost

在我的模型/关注文件夹中,我有:

module HasCostPolicy
  extend ActiveSupport::Concern
  included do
    enum cost_sharing: {
                    proportionately: 1,
                    equally: 2,
                    no_contribution: 3,
                    bear_all_costs: 4,
                    other_cost_policy: 5

                  }
    end
end

然后在我的成本嵌套形式中,我有:

<%= f.input :ip_expenses, as: :select, label: "Responsibility for IP expenses", collection: Stance::Cost.cost_sharing.map { |key, val| [key.humanize, key] } %> 

当我尝试呈现组织表单(使用嵌套成本字段)时,我收到一条错误消息:

undefined method `cost_sharing' for #<Class:0x007ffe7eaef220>

为了能够在我的嵌套表单中使用 HasCostPolicy 关注点,我需要做什么?

4

1 回答 1

1

奇怪的是,我需要将表单中的 cost_sharing 复数化。

我不明白为什么,但这有效:

<%= f.input :ip_expenses, as: :select, label: "Responsibility for IP expenses", collection: Stance::Cost.cost_sharings.map { |key, val| [key.humanize, key] } %> 
于 2016-11-01T02:58:24.677 回答