Rails与NoBrainer和RethinkDB的simple_form关联

时间:2016-02-17 09:08:28

标签: ruby-on-rails associations simple-form rethinkdb nobrainer

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

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

1 个答案:

答案 0 :(得分:0)

你可能没有做错任何事。

  

请注意,关联助手目前仅在测试时使用   积极记录。它目前不适用于Mongoid和   根据您使用的ORM,您的里程可能会有所不同。

     

https://github.com/plataformatec/simple_form

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

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

如果它仍然不起作用,您可能需要在Rails the lower-level collection input helpers方法之上使用collection_select,这只是一些SimpleForm糖。

= f.input :currency_id, 
          label: 'Currency',
          collection: Currency.all,
          label_method: :code, 
          value_method: :id