我正在使用formtastic& formtastic_cocoon创建了一个嵌套表单。
所有似乎都能很好地动态地将嵌套表单添加到现有表单中,但有一个例外。
我有用户和用户都有条目。
当我创建用户并添加条目时,我最终会
-User - Entry (empty) - Entry Test 1
我应该只有
-User - Entry Test 1
我不确定为什么空白条目总是出现。
我的模特
class User < ActiveRecord::Base validates :name, :presence => true has_attached_file :photo has_many :tasks, :dependent => :destroy accepts_nested_attributes_for :tasks, :allow_destroy => true end class Task < ActiveRecord::Base attr_accessible :entry belongs_to :user end
我的创建控制器是(我认为这是正确的控制器)
def create @user = User.new(params[:user]) if @user.save flash[:notice] = "Successfully created user." redirect_to @user else render :action => 'new' end end def create @task = Task.new(params[:task]) if @task.save flash[:notice] = "Successfully created task." redirect_to @task else render :action => 'new' end end
空条目显示在数据库中,所以我认为这不是html.erb文件的问题,但我可以在这里发布,如果这会有所帮助。
答案 0 :(得分:1)
事实证明,这可能是formtastic_cocoon处理表单的方式的问题。
在查看html源代码时,嵌套表单位于页面中,但是已隐藏。
我将模型更改为
accepts_nested_attributes_for :tasks, :reject_if=> proc {|attributes| attributes[:entry].blank?}, :allow_destroy => true