【问题标题】:Mongoid embeds_many with Rails fields_forMongoid embeds_many 与 Rails fields_for
【发布时间】:2011-08-02 20:09:09
【问题描述】:

我有一个这样的模型:

class Search
  include Mongoid::Document

  embeds_many :terms

  accepts_nested_attributes_for :terms
end

class Terms
  include Mongoid::Document

  embedded_in :search, inverse_of: :terms

  field :some,    type: String
  field :search,  type: String
  field :terms,   type: String
end

我有一些看起来像这样的haml:

= form_for @search do |f|
  - f.fields_for(:terms) do |term_form|
    = term_form.label :some
    = term_form.text_field :some
    = term_form.label :search
    = term_form.text_field :search
  = f.submit 'Save'

我的 Search#new 方法如下所示:

@search = Search.new
@search.terms.build

如果页面上显示任何内容,我会很高兴,但事实并非如此。

如何使用 form_for 和 fields_for 为 Mongoid embeds_many 嵌入文档制作表单?

为了记录,我也尝试过看起来像这样的haml:

= form_for @search do |f|
  - @search.terms.each do |term|
    - f.fields_for(term) do |term_form|
....

和其他一些变体,都无济于事。

【问题讨论】:

    标签: ruby-on-rails ruby mongoid form-for fields-for


    【解决方案1】:

    您的表单看起来不错 - 但我注意到您的控制器操作中有错字。不确定这是否只是您的问题或实际应用中的拼写错误,但是

    @search.parties.build
    

    应该是

    @search.terms.build
    

    【讨论】:

    • 有问题的错字,为了清楚起见,我修复了它。谢谢。
    【解决方案2】:

    this问题有我的答案。

    rails 3 想要

    - f.fields_for(:terms) do |term_form| 是:

    = f.fields_for(:terms) do |term_form|

    所以事实证明它与 mongoid 关系完全没有关系。假设我很愚蠢。

    【讨论】:

      猜你喜欢
      • 2012-01-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-10
      • 1970-01-01
      • 2012-06-07
      • 2011-06-28
      • 1970-01-01
      相关资源
      最近更新 更多