[英]Adding empty record for nested attribute in rails
我正在使用Rails 4 / Ruby 2.0.0。 我有兩個模型- Articles
和Graphics
。 Articles
has_many
Graphics
。 因此,在我的代碼中,我試圖將一個空記錄添加到文章上的圖形集合中,以便在表單中,將有一個空字段集來添加新記錄。 我無法弄清楚為什么字段沒有顯示在表單上。
我嘗試了多種構建圖形集合的方法,但似乎沒有一個可行的方法。 當然,我一定會缺少一些瘋狂的小東西。
class Article < ActiveRecord::Base
has_many :graphics, :dependent => :destroy, :foreign_key => 'article_id'
accepts_nested_attributes_for :graphics,
:allow_destroy => true,
:reject_if => :all_blank
end
class Graphic < ActiveRecord::Base
belongs_to :article
validates_presence_of :path, :caption
end
...
<% f.fields_for :graphics do |g| %>
<div class="clear clearfix pad-b-20">
<div class="w-1-2 left f-left">
<div class="field">
<%= g.label :path %><br>
<%= g.text_field :path %>
</div>
</div>
<div class="w-1-2 left f-left">
<div class="field">
<%= g.label :caption %><br>
<%= g.text_field :caption %>
</div>
</div>
</div>
<% end %>
...
<%= form_for(setup_article(@article)) do |f| %>
module FormHelper
def setup_article(article)
article.graphics.build
article
end
end
...
after_initialize :build_graphics
private
def build_graphics
self.graphics.build
end
...
def new
@article = Article.new
@article.graphics.build
end
...
問題在於,對於form_for
和fields_for
都需要使用<%=
,因為它們會呈現表單的內容。
因此,要解決您的問題,您需要編寫
...
<%= f.fields_for :graphics do |g| %>
Your content
<% end %>
...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.