Rails cocoon 动态创建link_to_add_association

Posted

技术标签:

【中文标题】Rails cocoon 动态创建link_to_add_association【英文标题】:Rails cocoon dynamic creation of link_to_add_association 【发布时间】:2018-08-26 17:16:59 【问题描述】:

我有一个表单,它允许向表单添加可能数百种不同的关联类型。我正在使用 cocoon gem 的 link_to_add_association 但渲染 100 个链接非常慢,因为它们填充了添加它们所需的所有 html。有没有办法从 ajax 请求动态创建链接?问题是link_to_add_association 需要在初始页面请求后不可用的表单构建器对象。

作为旁注,链接是分组的,因此如果我希望在单击该特定组时呈现该特定组的链接。

【问题讨论】:

【参考方案1】:

我最终为每个请求渲染了一个新表单,这似乎工作得很好。

【讨论】:

如果你觉得它也关闭茧宝石票。 对我来说仍然有点不清楚你是如何解决它的?而不是使用link_to_add_association,而是使用表单的链接? @nathanvda 我最终呈现了一个全新的表单,其中仅包含所需的链接。最初我认为这会导致问题,但它工作得很好。 ;)【参考方案2】:

我解决了这个问题,为同一个对象创建了一个表单构建器,并将对象传递给部分

action.js.erb

'<%= form_for(@object) do |ff| %>'
   $('#some_div').html("<%= j render(partial: 'some_partial', locals: f: ff)%>"
'<% end %>'

注意单引号,这是为了避免 javascript_escape 问题

【讨论】:

以上是关于Rails cocoon 动态创建link_to_add_association的主要内容,如果未能解决你的问题,请参考以下文章

使用 COCOON Rails 3 在动态字段中自动完成 Jquery

Rails 4 & cocoon gem:无法将 3 级子级添加到动态添加的 2 级子级

在 Ruby on Rails 4.2 中使用 Cocoon gem 嵌套表单

我可以在 Rails 中使用 link_to 创建一个链接数组吗?

Rails 3 - link_to 使用 jquery ajax 调用部分

rails:如何覆盖 cocoon gem 辅助方法并调用原始方法