2016-11-01 1 views
0

Я пытаюсь узнать, как использовать проблемы модели в моем приложении Rails 5.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 в моей вложенной форме?

+0

является 'Stance :: Cost.cost_sharing' определены в рельсах консоли? –

+0

@maxpleaner - нет. c = Stance :: Cost.new => # 2.3.1p112: 009> c.cost_sharing = 1 NoMethodError: undefined метод 'cost_sharing = 'для # Mel

ответ

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] } %> 
+0

в классе (' Stance :: Cost') метод множественного числа определен и возвращается хэш со всеми возможными значениями. Но в экземплярах ('Stance :: Cost.new') определяется сингулярное значение, и оно возвращает строку. –

+0

Я не понимаю, что это значит. Метод не определен как множественное число в проблеме. Перечисление определяется как «cost_sharing» (единственное число). – Mel

+0

Да, рельсы создают множественный метод для вас для класса. –

Смежные вопросы