防止 Cocoon 加载存储的对象
Prevent Cocoon from Loading Stored Objects
上下文:
我有一个页面,其中有 table 个人。我想使用 cocoon 在这个 table 的底部创建一个可以称为 "quick-add" 的功能。听起来很简单,对吧?
收获:
出于超出此问题范围的原因,我仅希望能够添加人使用此茧界面。我不想编辑已经存在的人,或删除他们,或类似的东西。我什至不希望茧加载它们。 (我知道,我知道,这是一个奇怪的想法,对吧?)
问题:
这是我应该使用 cocoon 的东西吗,或者我最好只写我自己的 javascript 到 add/remove 这些 "quick-add" 字段?如果值得使用 cocoon,我该如何实现它,以便不从数据库中加载已经存在的人?
提前致谢。
Cocoon 不负责加载您的关联。您需要做的就是省略 Cocoon 文档中建议的 fields_for
部分:
= form_for @project do |f|
.field
= f.label :name
%br
= f.text_field :name
.field
= f.label :description
%br
= f.text_field :description
%h3 Tasks
#tasks
-# Two lines below are responsible for displying already saved models. Just get rid of them.
=# f.fields_for :tasks do |task|
=# render 'task_fields', f: task
.links
= link_to_add_association 'add task', f, :tasks
= f.submit
最后,您可能希望您的页面在验证错误时保留表单中新插入的记录。在这种情况下,fields_for
接受第二个参数来指定要呈现的记录:
= f.fields_for :tasks, f.object.tasks.select(&:new_record?) do |task|
= render 'task_fields', f: task
上下文:
我有一个页面,其中有 table 个人。我想使用 cocoon 在这个 table 的底部创建一个可以称为 "quick-add" 的功能。听起来很简单,对吧?
收获:
出于超出此问题范围的原因,我仅希望能够添加人使用此茧界面。我不想编辑已经存在的人,或删除他们,或类似的东西。我什至不希望茧加载它们。 (我知道,我知道,这是一个奇怪的想法,对吧?)
问题:
这是我应该使用 cocoon 的东西吗,或者我最好只写我自己的 javascript 到 add/remove 这些 "quick-add" 字段?如果值得使用 cocoon,我该如何实现它,以便不从数据库中加载已经存在的人?
提前致谢。
Cocoon 不负责加载您的关联。您需要做的就是省略 Cocoon 文档中建议的 fields_for
部分:
= form_for @project do |f|
.field
= f.label :name
%br
= f.text_field :name
.field
= f.label :description
%br
= f.text_field :description
%h3 Tasks
#tasks
-# Two lines below are responsible for displying already saved models. Just get rid of them.
=# f.fields_for :tasks do |task|
=# render 'task_fields', f: task
.links
= link_to_add_association 'add task', f, :tasks
= f.submit
最后,您可能希望您的页面在验证错误时保留表单中新插入的记录。在这种情况下,fields_for
接受第二个参数来指定要呈现的记录:
= f.fields_for :tasks, f.object.tasks.select(&:new_record?) do |task|
= render 'task_fields', f: task