问题标签 [nested-attributes]

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

ruby-on-rails-3 - 在 ruby​​ 上使用 nested_attributes 保存值

我有嵌套属性用于说评论。父类是post。

当我保存帖子时,我也想保存评论,并且我需要 hidden_​​field 的不同值,如果我使用表单标签,我不知道它如何在不做任何控制器操作的情况下保存评论。

我还在帖子模型中使用了 :accepts_nested_attributes_for :comment 。如果有人可以再考虑一下,那就太好了。

名称、地址和标签是注释字段。当我保存帖子时,我需要保存两行评论。一个来自第一个 text_field、text_field 和 hidden_​​field,另一个来自第二个输入字段。

0 投票
4 回答
3013 浏览

ruby-on-rails - 如何在 Rails 3 中路由多层嵌套资源?

routes.rb我知道我可以通过这种方式在 Rails 3中指定嵌套资源:

但是,我想添加commentsposts. 我应该在我的routes.rb文件中写什么?这是正确的方法吗?我可以继续嵌套它们吗?

0 投票
2 回答
1542 浏览

ruby-on-rails - Rails / 嵌套属性 / file_field 为空时不显示在 params 中

我有两个模型,第一个模型 ( model_1) 接受第二个模型 ( ) 的嵌套属性model_2。第二个模型只有一个字段 ( file),在表单中作为文件字段引用。

没有选择文件时,问题就来了。在这种情况下——除了一个文本字段——该字段根本不会出现在具有第一个模型的 POST 参数中,它认为根本不应该创建任何嵌套模型。哪个无法触发验证等。如果我要向 model_2 和相应的表单添加第二个字段,并且如果我使用的是文本输入,那么一切都会顺利进行,并且文件字段的验证自然也可以正常工作。

任何人都有如何去做这件事的经验?

为了更好地使用一些(简化的)代码 - 形式:

型号 1:

和模型 2:

0 投票
1 回答
6840 浏览

ruby-on-rails - Accepts_nested_attributes_for 忽略空白值

我有

我有一个动态表单,您可以在其中按“+”添加新的文本区域以创建新的收藏夹。我想要做的是忽略空白,我发现在更新控制器中比非嵌套属性更难排序。

我暂时拥有的是在 after_save 回调中删除空记录的黑客行为。忽略这些空白对象的最有效方法是什么?

我不想要验证和错误,只是静默删除/忽略。

0 投票
2 回答
1536 浏览

ruby-on-rails - Rails 多态赋值

我已经使用 成功创建了依赖的多态关联accepts_nested_attributes_for,但现在我想分配一个已经存在的多态。我收到错误:

楷模:

看法:

生成的参数哈希是:

这在我看来是合理的。我究竟做错了什么?

0 投票
3 回答
10427 浏览

ruby-on-rails-3 - rails 中的 label_tag 和 checkbox_tag 问题

我希望我的复选框可用,所以我通常会在复选框中添加标签,这样您就可以选择文本,而不必“瞄准”复选框。

问题是,如果我在 Rails 中使用嵌套属性表单怎么办?我现在有这个代码:

问题在于它产生了这个:

而我希望它是这样的:

0 投票
3 回答
8271 浏览

ruby-on-rails - 尝试在 Rails 中保存嵌套属性时的 ActiveRecord::AssociationTypeMismatch

我阅读了很多关于 `has_one 关系和嵌套属性的页面,但没有成功完成这项工作。任何帮助都会很棒。

每个用户都有一个网络。我正在尝试以一种形式收集这两个属性的信息,但不断收到异常ActiveRecord::AssociationTypeMismatch in UsersController#create

传递的参数有:

我猜测参数Network必须以某种方式显示,network_attributes但我不确定如何。

控制器:

看法:

当然,模型:

谢谢

0 投票
1 回答
819 浏览

ruby-on-rails - 如何获取子对象的值

我在rails中有一些嵌套的对象。用户 -> has_many :tasks -> has_one :location。

昨天,我以为我无法将位置值链接到任务,但现在我意识到我也无法在 show 中获取要输出的值。

我可以通过调试获得输出

输出

所以我想如果我用

Rails 会给我地址字段。但我得到一个

关于我做错了什么的任何建议?

---------- 更新,包括模型---------------- 我的任务和位置模型是

0 投票
1 回答
6020 浏览

ruby-on-rails - 销毁方法不触发以破坏复杂形式的嵌套资源

我正在使用 Paperclip 2.3.8 运行 Rails 3.0.3。我有两个模型,称它们为“Post”和“Image”。Image 是一个包含 Paperclip 图像文件的对象,用于将图像动态添加到 Posts。Image属于Post,Post有很多Image。

岗位型号:

图像模型:

我有一个表单,我想在其中动态添加和删除图像。如果图像是正在上传的新图像,我想显示一个 file_field;否则,如果图像已经存在,我想显示图像和删除链接。我关注了 Ryan Bates 的 Railscasts on Nested Forms。动态添加图像正在工作,但对 _destory 的调用没有触发。该帖子包含“_destroy”=>“1”,但在 HTTP Post 事件之后,id 为 7 的图像仍然存在。以下是 HTTP 帖子的摘录:

这是表单的样子:

_image_fields:

Javascript函数:

辅助功能:

正如我上面提到的,我可以添加图像。单击“添加图像”链接会在表单中添加一个文件字段,我可以成功添加多个图像。单击图像的“删除”链接会从视图中删除链接和图像 - 但正如我所说,它不会在 Post 事件中删除。

提前谢谢你;我感谢任何花时间帮助我找到解决方案的人。

编辑:

- 解决方案 -

在 Post Controller 中将“.includes(:images)”添加到更新方法中的 find 中:

0 投票
1 回答
608 浏览

ruby-on-rails - Accepts_nested_attributes_for :reject_if 触发另一个方法

我有一个使用 formtastic_cocoon(jquery 版本的 formtastic)的多级嵌套表单。

我正在尝试在某种意义上进行一些验证

我希望accept_nested_attributes_for 有一个:if 选项,但显然只有:reject_if。

有没有办法像我描述的那样创建一个验证作为accepts_nested_attributes_for的一部分?

------------------------根据祖宾的回复更新了------------------------ -----

我相信 Zubin 的方法是正确的,但我似乎无法让它正常工作。我使用的方法是

当我触发此功能时,self.task_id 将作为“0”而不是 Task.id 放入数据库中。

我想知道我是否还缺少其他东西。我不完全确定该方法实际上正在被调用。难道我不需要说

在某一点?

-------------------进一步编辑 ----------------------- 我认为我能做到发现只有当它与数据库的值同名时才会调用该方法,因此我将方法更改为

不幸的是,这仍然导致 0 作为数据库中的值。