Ruby on rails Rails与NoBrainer和db简单地形成关联
我在一个rails项目中使用simple_form作为表单生成器,RejectionDB作为数据库和NoBrainer ORM。我已将模型设置为包含它们之间的关系,但是在尝试生成关联的选择下拉列表时,我得到错误关联:未找到货币。我哪里做错了Ruby on rails Rails与NoBrainer和db简单地形成关联,ruby-on-rails,associations,simple-form,rethinkdb,nobrainer,Ruby On Rails,Associations,Simple Form,Rethinkdb,Nobrainer,我在一个rails项目中使用simple_form作为表单生成器,RejectionDB作为数据库和NoBrainer ORM。我已将模型设置为包含它们之间的关系,但是在尝试生成关联的选择下拉列表时,我得到错误关联:未找到货币。我哪里做错了 class Country include NoBrainer::Document belongs_to :currency field :name, type: String field :nationality, typ
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
你可能没有做错什么 请注意,关联帮助器当前仅使用测试 活动记录。它目前不能很好地与Mongoid和 根据您使用的ORM,您的里程可能会有所不同 AFAIK您的关联声明正确-但是您可能希望尝试指定用于选项的集合
= f.association :currency, placeholder: 'Please select one',
label: 'Currency',
label_method: :code,
collection: Currency.all
如果它仍然不起作用,您可能需要使用它,这只是Rails方法之上的一些SimpleForm sugar
我猜您正在使用HAML,如果您正在使用Slim,您可能需要进行一些调整,因为多行方法调用的语法是不同的。非常正确。似乎很简单,不知道如何处理与数据库的关联。添加集合没有什么区别。经过大量挖掘后,我发现NoBrainer gem此时不支持反射,尽管有一个包含反射的请求(该请求尚未生效),因此它应该很快就可以使用。为了回答你的问题,是的,我可以选择一个集合,为它提供所需的集合。希望上面的内容能得到整理,因为这会让生活变得更简单。所以我发现NoBrainer还不支持反射,这就是为什么f.association方法还不起作用。然而,有一个包含反射支持的请求。
= f.input :currency_id,
label: 'Currency',
collection: Currency.all,
label_method: :code,
value_method: :id