0

我在 rails 项目中使用 simple_form 作为我的表单构建器,使用 RethinkDB 作为数据库和 NoBrainer ORM。我已经设置了模型以包含它们之间的关系,但是在尝试为关联生成选择下拉列表时,我收到错误Association :currency not found。我哪里错了?

class Country
    include NoBrainer::Document

    belongs_to :currency
    field :name, type: String
    field :nationality, type: String
end

class Currency
    include NoBrainer::Document

    has_many :countries
    field :name, type: String
    field :code, type: String
    field :symbol, type: String
end

= simple_form_for @country do |f|
    = f.input :name, placeholder: 'e.g. Namibia', label: 'Country'
    = f.input :nationality, placeholder: 'e.g. Namibian', label: 'Nationality'
    = f.association :currency, placeholder: 'Please select one', label: 'Currency', label_method: :code
    = f.button :submit
4

1 回答 1

0

你可能没有做错什么。

请注意,关联助手目前仅使用 Active Record 进行测试。它目前不适用于 Mongoid,并且根据您使用的 ORM,您的里程可能会有所不同。

https://github.com/plataformatec/simple_form

AFAIK 您的关联已正确声明-但您可能想尝试指定要用于选项的集合。

= f.association :currency, placeholder: 'Please select one', 
                label: 'Currency', 
                label_method: :code, 
                collection: Currency.all

如果它仍然不起作用,您可能需要使用较低级别的集合输入助手collection_select,它只是 Rails方法之上的一些 SimpleForm 糖。

= f.input :currency_id, 
          label: 'Currency',
          collection: Currency.all,
          label_method: :code, 
          value_method: :id
于 2016-02-17T10:06:28.783 回答