问题标签 [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 投票
2 回答
594 浏览

ruby-on-rails - 带有图像上传的多模型表单

我正在尝试创建一个有很多答案的投票对象。每个答案都可以附上一张图片。如何创建一个表单,让我可以输入问题并添加可变数量的答案(每个答案都附有图片)。我还希望允许预览上传的图像。

到目前为止,我的想法是为每个添加的问题自动上传到预览处理程序的每个图像都有一个子表单。

我的另一种方法是在会话中创建问题对象,并向其中添加答案对象,然后同时保存它们。不过,我不太确定如何在 Rails 中实现这一点。我正在使用回形针上传图像。

我是一个rails新手,所以任何建议都将不胜感激。

0 投票
1 回答
135 浏览

ruby-on-rails - 有没有更好的方法来计算三层嵌套表单

我有一个嵌套形式,如:

现在,我想知道 house.id = 1 总共有多少房间和电视。

在我给的houses_controller中

获取每栋房屋的房间数量非常简单,例如

我的问题是如何获得电视计数?我现在正在使用这个

它有效,但我不确定这是否好。有没有更好的获取方式?

0 投票
3 回答
466 浏览

ruby-on-rails - Rails 嵌套表单

我想用 text_fields 创建表单

  • 标题
  • 内容
  • 标签

我有 Post (TITLE, CONTENT) 和 Tag (TAGS) 模型。TAGS 是单个文本字段。我需要做什么才能将 TAGS 保存到 Tag 模型。假设我在 TAGS 字段中写了“香蕉,果汁,新标签”,如何将其解析为数组,然后保存在标签模型中。

谢谢!

0 投票
3 回答
2289 浏览

ruby-on-rails - rails 嵌套对象表单和命名空间控制器

我有一个这样的嵌套对象:

我有一个创建/编辑作品的表单,其中包含嵌套页面对象的字段。我按照这篇文章进行设置,所以我使用了一个助手,以便我的表单在您开始时创建一个新页面。

然后,在我的部分形式中,我有:

显示页面的字段,但是当它被提交时,它会在works控制器中查找创建操作。创建操作在管理工作控制器(命名空间)中,因此中断。

我尝试使用命名空间对象,但如果我这样做,它不知道页面:

如何将命名空间与嵌套对象表单一起使用,使其具有 pages 方法,但发布到命名空间的 admin/works 控制器?

0 投票
2 回答
197 浏览

ruby-on-rails - 需要帮助修改高级 Rails 食谱书中的多个模型示例

我正在开发一个简单的 Rails 应用程序供我自己使用以用于学习目的,并且我正在尝试以 1 种形式处理 2 个模型。我已经按照高级 Rails 食谱第 13 章中的示例进行了操作,并根据我自己的目的对其进行了一些简单的修改。

我拥有的 2 个模型是 Invoice 和 InvoicePhoneNumber。每个 Invoice 可以有多个 InvoicePhoneNumber。我想要做的是确保每张发票至少有 1 个与之关联的电话号码。书中的示例在每个电话号码旁边放置了一个“删除”链接(书中的任务)。我想确保最上面的电话号码旁边没有删除链接,但我不知道该怎么做。生成发票中电话号码列表每一行的部分模板如下;

现在,如果我可以检测到何时生成第一个电话号码,我可以在 link_to_function 上设置一个条件,这样它就不会被执行。这将解决我的问题一半并且令人满意,尽管这意味着如果我真的想删除第一个电话号码并保留第二个电话号码,我将不得不进行一些手动改组。

理想的方法可能是在浏览器中使用 javascript,但我不知道如何处理。当只有一个时,我需要隐藏“删除”链接,并在有多个时显示所有“删除”链接。“添加电话号码”链接中使用的 .insert_html 方法中的功能似乎不足以解决此问题。

我不是要求一步一步的操作方法(事实上我不想得到一个 - 我想理解这一点),但是有人对这个问题从哪里开始有一些建议吗?

0 投票
1 回答
924 浏览

ruby-on-rails - 具有多个模型的 Rails 结帐表单

我正在创建一个基于 Agile Web Development With Rails(版本 3)中的购物车。我设置了将“项目”添加到“购物车”的位置,然后在开始结帐过程时,将它们作为“line_items”添加到“订单”对象中。“line_items”代表任意数量的一个“项目”。到目前为止,我并没有偏离书中的例子。但是,这对我来说变得复杂了。我商店中的每个“项目”都可以使用文本进行自定义,我需要能够将自定义文本与“订单”中的“line_items”一起存储。

如上所述,“line_items”包含任意数量的“item”,但客户需要能够自定义每个 item,因此每个“line_item”必须为每个单独的“item”保存不同的自定义。因此,“line_items”表中不能只有一列用于自定义。我决定组织它的方式是创建一个新模型/表“line_item_attributes”。对于“line_item”中的每个“item”,都有一个新的“line_item_attributes”。

我对 Rails 还是很陌生,我在让它工作时遇到了一些麻烦。我不相信我什至以“正确的方式”做这件事。我遇到的是一种鸡/蛋问题。当我创建“订单”时,我将购物车中的“项目”添加为“line_items”。现在为了定制他们订购的产品,我还必须在每个“line_item”中添加“line_item_attributes”,以便定制表单可以使用。

以下是我不知道的:客户提交表单后,我不知道如何“填写”空白的“line_item_attributes”。我无法为表单创建“虚拟”line_item_attributes,然后在提交时从提交的数据中创建新的(实际保存的)。这样做的原因是它们必须绑定到它们所属的“line_items”中。我曾希望当我调用“@order.save”时 Rails 会填写它们,但事实并非如此。我希望这并不难理解。

我在下面包含了相关的代码:

购买.rb(控制器)

order.rb(模型)

line_item.rb (模型)

line_item_attributes.rb(模型)

谢谢你的帮助!

0 投票
1 回答
1620 浏览

ruby-on-rails - 嵌套 Rails 表单并使用 label_tag、checkbox_tag 和其他 form_tag 函数

在 Ruby on Rails 的常规表单中,如果使用 form_for 构建模型,如 API 文档所述,form_for 不会创建独占范围,并且可以在 form_for 表单中使用 form_tag 函数。

例如:

但是,在嵌套形式中,标签和字段的名称由 Rails 自动生成,以与给定的嵌套模型相关联,并且在一次创建多个嵌套模型时不会重叠。是否仍然可以使用 form_tag 功能?

我想做这样的事情:

但是,如果有多个孩子,我不知道如何访问 child_form 的索引以确保 check_box_tag 具有唯一值。

我正在尝试做的事情可能吗?

0 投票
3 回答
40320 浏览

ruby-on-rails - Rails nested form with has_many :through, how to edit attributes of join model?

How do you edit the attributes of a join model when using accepts_nested_attributes_for?

I have 3 models: Topics and Articles joined by Linkers

So when I build the article in the "new" action of the topics controller...

...and make the nested form in topics/new.html.erb...

...Rails automatically creates the linker, which is great. Now for my question: My Linker model also has attributes that I want to be able to change via the "new topic" form. But the linker that Rails automatically creates has nil values for all its attributes except topic_id and article_id. How can I put fields for those other linker attributes into the "new topic" form so they don't come out nil?

0 投票
2 回答
195 浏览

ruby-on-rails - Rails - 对象的类型应该在自己的模型中吗?

我有一个联系人,并联系 has_many :phones。电话表有一个名为phones_desc 的列,我想在其中包含用户保存的电话号码类型。

我的问题/最佳实践

我是否应该提供带有手动提供选项的选择(例如“移动”、“工作”、“家庭”)...

-或者-

...创建一个名为phones_types 的新模型,我可以在其中添加我想要的值,从而为每个模型创建一个唯一的ID。然后我可以在将 phone_desc 更改为 phone_type_id 后执行以下操作,添加电话 has_many :phone_types 并为 phone_types 表提供一个名称列:

边注

我目前正在使用第一个选项(不是单独的模型)进行此操作,并且在我去编辑父对象时无法选择值。换句话说,选择选项在编辑电话号码时没有选择保存的值。

它总是选择第一个选项,因此用户可能会无意中更改 phone_desc 而不会意识到这一点。

如果第一个选项实际上是更好的方法,那么在通过选择编辑手机描述时,您是否对如何将对象值作为选定值有任何见解?

0 投票
1 回答
1470 浏览

jquery - 使用 file_field 元素的 Rails 嵌套表单

我正在使用 Railscast 197 中的代码使用 jQuery 创建嵌套表单。我面临的挑战是嵌套模型使用 file_field 元素,因此在查看编辑视图时,我只看到一个空的 file_field 元素列表。有没有办法让rails在用户查看编辑视图时显示其他内容(如禁用的text_field),但在查看视图时显示file_field ?

这是我正在使用的部分:

这是添加它的 jQuery(从 Railscast 稍微修改以在显示部分时添加效果):

但在我的 _form 部分中,我有:

这就是添加部分的原因,我猜在这里的某个地方我需要有某种条件,告诉rails是否已经创建了对象,以呈现不同的部分..任何人都知道如何我能做到这一点吗?