我在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
...
答案 0 :(得分:0)
问题是,form_for
和fields_for
都需要使用<%=
,因为它们会呈现表单的内容。
因此,要解决您的问题,您需要编写
...
<%= f.fields_for :graphics do |g| %>
Your content
<% end %>
...