问题标签 [nested-forms]

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 回答
176 浏览

ruby-on-rails - Rails 中的静态嵌套元素

我有一个“兴趣”列表,我系统中的每个用户都可以对其进行评分。管理员可以随时添加/删除兴趣。当用户去编辑他们的帐户时,我想显示系统中所有兴趣的列表,以及一个 1..5 值的下拉列表。我想知道我是如何设置这个的。。

使用 accept_nested_attributes for 似乎不起作用,因为当我使用 field_for 时,它想为每个已保存的兴趣创建表单。我想要的是显示每个兴趣,并在保存时,如果用户之前对兴趣进行了评分,它会更新值,如果之前没有评分,则添加一个新条目。

当前用户:

目前是用户兴趣:

目前兴趣:

0 投票
4 回答
3964 浏览

ruby-on-rails - 嵌套形式 & update_attributes

我在以多级嵌套形式更新数据时遇到问题。我使用部分来包含创建和更新视图的所有字段,并且我在创建时没有问题。只有更新。

基本上结构(简化)是:

就像我说的,创建用户、个人资料和地址工作正常。只有在我尝试更新之前,我才会发现问题。我没有收到错误,它实际上表明它已成功更新。它实际上确实正确更新了用户和个人资料字段,而不是地址字段。

这是堆栈跟踪中更新的参数。(再次总结和格式化)

我能找到的所有文档都只显示 1 个嵌套形式,所以我不确定我是否正确使用 update_attributes 超过 1 级深度。

有什么想法吗?

0 投票
2 回答
2364 浏览

ruby-on-rails - 使用belong_to 的深度嵌套Rails 表单不起作用?

我正在处理一个凌乱的表格,其中必须管理一个具有两级嵌套的部分。它几乎可以工作,但是有一个障碍,我能看到的唯一与其他有效的深层嵌套形式不同的是,有一个belongs_to 关系而不是has_many。以下是模型:

所以这是一个相当标准的多对多关系,通过链接表company_events。有问题的表单是创建/编辑一个事件,带有一个动态的“添加公司”Javascript 按钮,几乎都基于 Ryan Bates 的截屏视频和 GitHub 存储库。

主要形式:

包含的表格如下。需要注意的重要一点是,公司 ID 是通过 Javascript 更新设置的,因为它很长,所以我不会在这里包含它。基本上,用户开始输入一个名称,显示一个自动完成列表,然后单击名称设置公司名称和表单中的 ID。

当我更新现有记录时,一切正常。但是,当我尝试使用新创建的记录保存表单时,我得到:

使用堆栈跟踪:

我查看了nested_attributes 中的代码,并使用调试器运行它。发生的事情似乎是因为有一个 Company.id,ActiveRecord 假设已经有一个条目,但是当然它没有找到一个。这看起来很奇怪,因为显然我需要传入一个 ID 才能创建一个新的 CompanyEvent 条目。所以,我猜我错过了一些东西。

我发现工作的例子似乎都是嵌套使用 has_many 关系一直向下,而在这种情况下它是一个belongs_to,我想知道这是否是问题的根源。任何想法将不胜感激......

0 投票
2 回答
1400 浏览

ruby-on-rails - 可以急切地加载与nested_attributes 的关联吗?

简而言之,我遇到了一个可怕的 2(n) 查询问题。如果 n = 数据库中的技能数量,那么我的 characters#edit 表单将需要 2(n) 次查询来加载页面。它会在每个技能中选择一个 PlayerSkill(连接表),并且每个技能都会查找一次技能。

这是一些我认为与情况相关的代码。本质上,这个过程涉及的模型、视图和控制器,少了模型验证,少了我不关心的动作。

控制器:

型号:

令人反感的观点(HAML):

我对这种情况的理解是,急切加载的存在是为了在(大致)一个额外的查询中获取关联。

我需要在两个区域正确应用急切加载,而我对如何做到这一点不知所措。

在 stub_player_skills 方法中,它需要创建一个 PlayerSkill 对象,假设角色还没有一个。 它可以从这里的预加载中受益,因为它循环遍历数据库中的每个技能。这就是第一个“n 查询”的来源。

然后在视图上,fields_for 循环遍历我们积累的所有 PlayerSkills,因为这里没有办法预先加载,当我调用 =ps.object.skill.name 打印出技能名称时,它会进行技能查找,这带来了第二组“n 查询”。

我主要关心的是视图层,我找不到任何文档(Rails API 或其他)说明如果您使用 fields_for 生成嵌套表单,您可以如何急切地加载关联。

感谢您的所有回复:) ~Robbie

0 投票
1 回答
886 浏览

jquery - rails3 html5 jquery 动态添加嵌套表单,演示者模式?

工作有很多任务,任务有很多笔记

这样的表格应该是什么样子?使用部分,所以我可以从 /jobs/new 输入整个工作,并从 /jobs/2/tasks/new 添加新任务,可以从那里添加注释,当然也可以从 /jobs/2 添加新注释/tasks/5/notes/new ?

这是使用演示者模式的好地方吗?如果是,我应该使用哪个库?我已经在 github 上尝试了 active_presenter 的 rails3 分支,但我在表单部分时遇到了一些麻烦。

有人可以为此类任务提供一个很好的例子吗?

有很多演示者教程、嵌套表单教程和不显眼的 javascript 教程,但不是只有一个教程可以一起解释。

如果有人使用 html5 和 rails3 示例粘贴教程,那就太好了

0 投票
1 回答
202 浏览

ruby-on-rails - 重用嵌套和不嵌套的表单,如何显示提交按钮

我正在学习 Rails 并构建一个食谱应用程序。

在我的应用程序中,Recipe 包含一堆成分。

我有我的成分表嵌套在我的食谱表中,我用部分来称呼它。

当然,因为表单是嵌套的,所以

在 recipes/_form.html.erb 页面中。

所以现在我正在尝试在嵌套表单之外编辑单个成分。我想使用相同的形式,因为它仍然是一种成分。所以我创造了

出于某种原因,这会导致仅显示提交按钮。

如果我将提交按钮放在部分中,它会显示在不正确的配方表单中。

0 投票
1 回答
417 浏览

ruby-on-rails - 在连接模型中设置属性

我有以下用户模型:

以及以下技能模型:

能力模型有一个“类型”属性,它是连接模型。在嵌套表单中,如何在保存提交的技能时设置“类型”属性?这是嵌套形式:

0 投票
2 回答
397 浏览

c# - ASP.net - 集成表单的问题

WorldPay 支付网关建议使用此 HTML 将客户带到支付页面:

如何将此表格放在我的页面上?问题是我有一个母版页,它将内容页面内容包装在 ASP.net 表单中,我无法嵌套表单。

0 投票
2 回答
2084 浏览

ruby-on-rails - Accepts_nested_attributes_for 和新记录

我将 Accept_nested_attributes_for 与以下模型一起使用:

用户型号:

技能模型:

能力模型:

技能表有一个“名称”属性。如果已经存在具有相同技能名称的记录,我如何才能让 accept_nested_attributes_for 不创建新的技能记录?

0 投票
0 回答
451 浏览

ruby-on-rails - accepts_nested_attributes and validates_uniqueness_of

The central problem: How do you merge attribute collections by a key during mass assignment from a nested form.

The details: I am using the following models:

So there is a constraint of having only one container type per location. The following views render the location and associated containers:

admin/containers/_index.html.erb

admin/containers/_form.html.erb

module Admin::ContainersHelper

Essentially, the helper adds an new container to the collections except all types have already been associated or there is already a new container in the collection. This container is preinitialized to the first not-yet-defined container type. This works out pretty well so far. Adding containers works. Deleting containers works.

The problem is: I want to achieve that choosing and adding a container type which is already in the collection should sum up their counts (instead it would violate the unique constraint). I'm not sure what would be the best way without implementing/reinventing the complete accepts_nested_attributes_for magic - actually I wanted to reduce - not increase - code and complexity by using that.