问题标签 [cocoon-gem]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1159 浏览

ruby-on-rails - Cocoon 和 has_one 关联

我搜索了堆栈溢出和谷歌无济于事。

我有一个人有_one next_of_kin

我可以创建一个具有嵌套形式(带有茧)的人,并且可以完美保存。出于某种原因,当我转到编辑页面时,它会删除关联的 next_of_kin 记录。它呈现填充有记录数据的字段,但数据库中的实际记录被删除。

我的表格

我的 _next_of_kin_fields 部分

我的人模型:

我的 Next_of_kin 模型:

当我访问编辑页面时,如何阻止它删除 next_of_kin 记录?

0 投票
1 回答
1560 浏览

ruby-on-rails - 表单重新加载后的 Cocoon 回调

我正在创建一个表单,用户可以在其中添加许多嵌套问题,每个问题可以有许多嵌套答案,其他字段有 ActiveRecord 验证器,当它们失败时,页面会重新加载,插入的字段仍然存在。

所有回调(例如cocoon:before-insert)都不会重新加载,例如插入对象上的下拉列表的更改处理程序

如果在服务器端验证器上重新加载页面失败,我该怎么做才能使这些回调受到尊重?

另一方面,在代码质量方面,将在茧回调中创建的处理程序添加到new调用控制器上的方法时构建的嵌套对象的最佳方法是什么(即不受后插入/前影响的对象)插入回调)?

这是一些用于澄清的示例咖啡脚本代码:

编辑:更改问题,因为删除问题是缺少适当的包装类

编辑#2:添加示例代码

0 投票
0 回答
46 浏览

javascript - 添加基于 javascript 数据的嵌套模型

我正在使用茧宝石来处理多边形地图坐标。

我有一个允许向多边形模型添加多个坐标并保存它的表单,它可以手动工作。

现在我正在使用谷歌地图绘图库来获取地图上的点,我被困在如何调用茧从回调中动态地将这些点插入到页面上的表单中。谷歌地图发送“覆盖完成”事件,在那个回调中,我有完整的点数组。

我应该如何做到这一点?

0 投票
1 回答
537 浏览

ruby-on-rails - Capybara 形式值集与茧

我正在尝试使用 Cocoon 和 rails 4 为具有嵌套属性的表单编写测试。问题是我找不到要设置的表单元素。

我尝试了以下注释掉的变体,但找不到元素:

我不确定我的问题是茧 'link_to_add_association' 的动态特性,还是我不知道如何使用 find 或其他原因。

我的主要形式是:

和我的添加所有者部分:

0 投票
1 回答
2320 浏览

ruby-on-rails - 无法让茧在 Ruby on Rails 4 上工作

在过去的几个小时里,我一直在努力让它工作,但由于某种原因我不能。我几乎完全按照 github 存储库链接中所示的步骤进行操作。

我使用以下所有步骤创建了一个新应用程序:

这是我的意见/项目/_form.html.erb 文件:

现在这是我的意见/项目/_task_fields.html.erb 文件:

这不正是指南提到的吗?当我去创建一个新项目时,它只显示默认的名称标签、名称文本框、描述标签、描述文本框和“创建项目链接”。这是新项目表单的 HTML 输出:

有人可以帮助我吗?看起来我正在做指南中提到的所有事情,但我没有从中得到任何东西。

0 投票
0 回答
80 浏览

jquery - Rails - 无法在 iOS7 中选择用茧(动态加载)加载的输入

我遇到了一个非常奇怪的事件,在 iOS 7 中,使用 cocoon(使用 jQuery 动态加载)加载到我的页面上的任何表单字段都不会调出键盘(无法选择)。有没有人见过这样的事情?

0 投票
1 回答
41 浏览

ruby-on-rails - 抓取表单数据嵌套字段

我有一个通过Cocoon gem使用嵌套字段的 rails 应用程序:

_form.html.haml:

_task_fields.html.haml:

我需要做的是在用户的编辑页面上检索每个任务描述值。

0 投票
0 回答
157 浏览

ruby-on-rails - form_for 编辑操作错误

画廊控制器.rb

_form.html.erb

_photo_fields.erb

画廊.rb

照片.rb

问题是,我可以通过这个表单创建新照片,但是当我尝试编辑它们时,我得到未定义的局部变量或方法“f”。

与当地人一起编辑 解决方案有助于升技,但我仍然无法顺利运行代码。我编辑了我的代码,所以我可以看到当前上传了哪些照片,并添加了一个复选框来删除选定的照片。但是我在尝试这样做时得到了未经许可的参数:_destroy 错误。另外:当我尝试将新照片添加到现有画廊时,我在 GalleriesController#update 中得到 ActiveRecord::UnknownAttributeError。使用多张照片创建新画廊时一切正常。它与当前上传的图片有关,我创建了一个没有照片的画廊,我可以毫无问题地将它们添加到编辑操作中。

因为我没有足够的声誉直接在这里发布图片,所以我粘贴了我的编辑页面当前看起来如何的链接:http: //s13.postimg.org/3o8uvansn/Screenshot_from_2014_11_01_12_55_17.jpg

快速编辑:似乎我修复了更新问题。这条线

在 _form.html.erb 中让我上传新图片。删除时未经许可的参数的问题仍然存在。

仅删除图片上传的新文件字段,它不会删除已上传的图片。

0 投票
1 回答
1173 浏览

ruby-on-rails-4 - 带有嵌套 has_many 和 has_one 的嵌套表单

我基本上遇到了与这篇文章相同的问题,尽管我的情况略有不同:has_many 嵌套表单,其中包含 has_one 嵌套表单

但正如该帖子中的其他人所提到的,提供的答案并不能解决问题。

建立关系以便 Invoice has_many items 和每个 Item has_one 修饰符。我正在尝试制作一个 form_for Invoice,它允许使用创建许多项目,每个项目都有一个修饰符。

楷模


控制器


意见(哈姆尔)

让我们回顾一下正在发生的事情。为了构建嵌套的 has_one 关系,我在嵌套字段部分中构建了一个项目,以便我可以构建 has_one 修饰符。这是因为 rails 要求您在 has_one 关系中显式调用“build_something”(通常这在控制器的 new 中调用,但我只想在有人单击“新建项目”按钮后进行构建)。对于创建新发票,此代码完美运行。检查控制台,我看到关系已创建,我可以验证修饰符是否已成功创建。

但是,当我回去编辑发票时,cocoon 知道我已经有一个修饰符,所以它调用部分一次来为我的单个修饰符创建必要的字段。这些字段为空。不过这是有道理的,因为 cocoon 正在渲染该部分,它正在构建一个带有新修饰符的新代码并将字段设置为空白。我可以确认这是正在发生的事情,因为一旦我正确保存了我的修改器,我就可以进入我的部分,删除两个构建调用,并查看正确显示保存的修改器信息的编辑页面。

当然,现在我已经删除了构建调用,表单不再保存我创建的任何修饰符。所以本质上,我需要那里的构建调用来构建新的修饰符,但如果我想查看它们,我不能把它们放在那里。

有没有人有解决这种情况的方法?我发现了多个堆栈溢出问题,但没有一个能解决这个问题。

0 投票
1 回答
1025 浏览

ruby-on-rails - 茧宝石:如何限制关联数量

我正在尝试使用 Cocoon gem 将用户添加到资产。唯一的问题是我需要设置它以根据资产的类型限制可应用于资产的用户关联的数量(硬件/软件,硬件为 1,软件不会被定义)。目前我可以继续向资产添加用户关联。有没有办法限制关联的数量?

任何帮助表示赞赏。先感谢您。

资产显示:

_assets_users_fields.html.haml:

我尝试了在另一个问题上看到的解决方案,但Uncaught TypeError: number is not a functionif $("#assets_users .nested-fields").length() is 1.

我试过的javascript:

再次感谢任何帮助。

编辑:链接到提到的问题:茧添加关联,如何限制关联数量

生成的javascript: