Rails 5,关注 - 如何在表单中使用方法

时间:2016-11-01 01:09:11

标签: ruby-on-rails ruby activesupport-concern

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

我有一个嵌套模型:

class Stance::Cost < ApplicationRecord

    include HasCostPolicy

    belongs_to :organisation, inverse_of: :cost

在我的models / concerns文件夹中,我有:

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问题,我需要做什么?

1 个答案:

答案 0 :(得分: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] } %>