Cha*_*zak 1 ruby-on-rails nested-forms fields-for
我正在尝试在Rails 3.0.3中创建一个嵌套的模型表单.这是我的模特:
class Bird < ActiveRecord::Base
has_one :taxon, :as => :organism
accepts_nested_attributes_for :taxon
end
class Taxon < ActiveRecord::Base
belongs_to :organism, :polymorphic => true
end
Run Code Online (Sandbox Code Playgroud)
这是控制器方法:
def new
@bird = Bird.new
@bird.build_taxon
end
Run Code Online (Sandbox Code Playgroud)
这是表格:
New Bird
<% form_for @bird do |f| %>
<p>
<%= f.label :wingspan %>
<%= f.text_field :wingspan %>
</p>
<p>
<%= f.label :body_length %>
<%= f.text_field :body_length %>
</p>
<% f.fields_for :taxon do |builder| %>
<%= builder.label :common_name %>
<%= builder.text_field :common_name %>
<%= builder.label :genus_name %>
<%= builder.text_field :genus_name %>
<%= builder.label :species_name %>
<%= builder.text_field :species_name %>
<% end %>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud)
当我运行新方法时,分类单元的字段不会显示.在html源代码中没有提示它们.我听说如果嵌套模型为零(即如果我忘记在控制器方法中构建它),就会发生这种情况,但它就在那里.我在视图中添加了一些条件代码以确保.
那么,谁会让我在这里打我的额头?我错过了什么?
谢谢!
你在使用Rails 3吗?如果是这样的话应该是:
<%= form_for @bird do |f| %>
Run Code Online (Sandbox Code Playgroud)
和
<%= f.fields_for :taxon do |builder| %>
Run Code Online (Sandbox Code Playgroud)
注意等于.
| 归档时间: |
|
| 查看次数: |
1938 次 |
| 最近记录: |