动态嵌套表单总是创建一个额外的空白条目 - 使用 formtastic_coocoon

Posted

技术标签:

【中文标题】动态嵌套表单总是创建一个额外的空白条目 - 使用 formtastic_coocoon【英文标题】:dynamic nested form always creates an extra blank entry - using formtastic_coocoon 【发布时间】:2011-06-23 21:29:49 【问题描述】:

我正在使用 formtastic 和 formtastic_cocoon 创建嵌套表单。

除了一个例外,所有动态添加嵌套表单到现有表单似乎都运行良好。

我有用户,用户有条目。

当我创建一个用户并添加一个条目时,我最终得到了

-用户 - 条目(空) - 入学测试1

我应该只有

-用户 - 入学测试1

我不确定为什么总是出现空白条目。

我的模型是

类用户 true has_attached_file :照片 has_many :tasks, :dependent => :destroy accept_nested_attributes_for :tasks, :allow_destroy => true 结尾 类任务

我的创建控制器是(我认为这是正确的控制器)

定义创建 @user = User.new(params[:user]) 如果@user.save flash[:notice] = "成功创建用户。" 重定向到@用户 别的 渲染:动作 => '新' 结尾 结尾 定义创建 @task = Task.new(params[:task]) 如果@task.save flash[:notice] = "成功创建任务。" 重定向到@task 别的 渲染:动作 => '新' 结尾 结尾

空条目显示在数据库中,所以我认为 html.erb 文件没有问题,但如果有帮助,我可以将它们发布在这里。

【问题讨论】:

【参考方案1】:

原来这可能是 formtastic_cocoon 处理表单的方式的问题。

查看 html 源代码时,嵌套表单在页面中,但隐藏。

我把模型改成

accept_nested_attributes_for :tasks, :reject_if=> proc |attributes|属性[:entry].blank?, :allow_destroy => true

【讨论】:

请注意,使用当前版本的cocoon(替换formtastic-cocoon)不再需要。 但只有formtastic才需要。

以上是关于动态嵌套表单总是创建一个额外的空白条目 - 使用 formtastic_coocoon的主要内容,如果未能解决你的问题,请参考以下文章

在 Rails 中使用嵌套表单 - 如何使显示页面根据用户想要的呈现数量以表格格式显示每个新条目?

使用 ajax 从 db 创建选项选择

Rails jQuery 自动完成和动态嵌套字段

我的删除模式表单总是删除数据模型中的第一个对象?(Django)

在选项卡式表单中间添加额外(嵌套)表单的最佳方法

如何将表单组绑定到 Angular 中嵌套的动态创建的组件