0
我有一个简单的Rails窗体,它使用一个条件build_association(如果还没有关联的父级)来包含text_field来编辑父级。如果应该添加新的父记录,这很有用。这样做的问题是,如果父项已经存在,如果text_field被更新,那么它将会改变影响许多孩子的父记录。如果不管父关联是否已经存在,都会调用build_association,那么不断创建新的重复父项。如何根据Rails中text_field的内容设置和取消设置build_association?
我想了解如何使用build_association和fields_for向数据库中添加新父项,如果用户键入不熟悉的名称,但要将父项设置为现有记录(如果名称与现有父项的匹配名称。 (如果我能得到这部分工作的权利,下一步将是添加自动完成。)的代码如下:
<%= form_for @sermon, :html => { :multipart => true } do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :date %><br />
<%= f.text_field :date %>
</div>
<div>
<% @sermon.build_speaker unless @sermon.speaker %>
<%= f.fields_for :speaker do |g| %>
<%= g.label :name, "Speaker name:" %><br />
<%= g.text_field :name %>
<%= g.submit %>
<% end %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
这是完美的。我很高兴你碰巧看到我的问题。 – Michael 2012-09-18 16:42:08