所以,在我将我们的应用程序从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。
谢谢你的帮助!
答案 0 :(得分:0)
好吧......所以我一改变了
<%= form_for :geodatensatz .....
到
<%= form_for @geodatensatz ....
显示的fields_for:)
我敢肯定,对ROR有更多了解的人可以详细说明原因....