Ruby on rails 为rails中的嵌套属性添加空记录
我在Rails 4/Ruby 2.0.0中工作。我有两个模型-Ruby on rails 为rails中的嵌套属性添加空记录,ruby-on-rails,nested-attributes,has-many,Ruby On Rails,Nested Attributes,Has Many,我在Rails 4/Ruby 2.0.0中工作。我有两个模型-文章和图形文章有许多图形。因此,在我的代码中,我试图将一个空记录添加到文章的图形集合中,以便在表单中,有一组空字段可以添加新记录。我不明白为什么这些字段没有显示在表单上 我尝试了多种方法来构建图形集合,但似乎没有一种方法能够做到这一点。我肯定错过了一些非常小的东西 第1.rb条 使用ActiveRecord回调 第1.rb条 在控制器中构建它 ArticleController.rb 问题在于,对于表单_for和字段_for,您需要使
文章
和图形
<代码>文章有许多
图形
。因此,在我的代码中,我试图将一个空记录添加到文章的图形集合中,以便在表单中,有一组空字段可以添加新记录。我不明白为什么这些字段没有显示在表单上
我尝试了多种方法来构建图形集合,但似乎没有一种方法能够做到这一点。我肯定错过了一些非常小的东西
第1.rb条
使用ActiveRecord回调
第1.rb条
在控制器中构建它
ArticleController.rb
问题在于,对于<代码>表单_for和<代码>字段_for,您需要使用
在控制器中执行此操作是默认的执行方式。其余的看起来不错。您是否使用强参数?我建议您阅读并观看这篇文章,感谢您提到了强大的参数,我确实忘记了将其添加到允许的列表中,因此我确信这会导致以后的问题。但不幸的是,这并没有解决问题。我现在会查看这些链接,看看是否有什么发现。我想你缺少了一个=
符号:@Alex,缺少的=
正是问题所在。我讨厌这样的问题,我盯着它看了好几个小时。这没用,我从来都不清楚什么时候该用,什么时候不该用。既然我没有答案,那么发表评论解决我的问题的标准是什么?我将为此添加一个答案
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
...
...
<%= f.fields_for :graphics do |g| %>
Your content
<% end %>
...