嵌套形式,has_many关系的空符号

时间:2015-01-28 13:49:14

标签: ruby-on-rails-3.2 nested-forms

所以,在我将我们的应用程序从rails 2迁移到3.2之后,我已经为一个新类实现了一个嵌套的表单,它已经完美地运行了。

不幸的是,我无法与迁移的班级一起工作,而且它让我保持了好几天。

父模型:

class Geodatensatz < ActiveRecord::Base
self.table_name =  "GEODATENSATZ”
self.sequence_name = "GEODATENSATZ_SEQU"
attr_accessible :anwendungseinschraenkungs_attributes  
has_many :anwendungseinschraenkung,
 :dependent => :destroy
accepts_nested_attributes_for :anwendungseinschraenkung,
                              :reject_if => lambda  { |a| a[:beschreibung].blank? },
                              :allow_destroy => true

儿童模特:

class Anwendungseinschraenkung < ActiveRecord::Base
self.table_name = "ANWENDUNGSEINSCHRAENKUNG"            
self.sequence_name =  "ANWENDUNGSEINSCHRAENKUNG_SEQU"   

attr_accessible :geodatensatz_id, :beschreibung, :index

belongs_to :geodatensatz

在视图中:

<%= form.fields_for :anwendungseinschraenkung do |builder| %>
                <%= builder.text_area :beschreibung, :rows => 3 %>
<% end %>

我可以输入“@ geodatensatz.anwendungseinschraenkung”来获取所有“anwendungseinschraenkung”,但是:anwendungseinschraenkung似乎是空的。如果我调用@ geodatensatz.anwendungseinschraenkung.build,则会构造所有属性值为“nil”的单个Object。

谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

好吧......所以我一改变了

<%= form_for :geodatensatz .....

<%= form_for @geodatensatz ....

显示的fields_for:)

我敢肯定,对ROR有更多了解的人可以详细说明原因....