问题标签 [accepts-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 投票
1 回答
248 浏览

ruby-on-rails - 如何添加具有额外列的多对多记录

我有以下型号

用户

接触

用户联系方式

我正在使用以下强大的参数

我面临的问题是,每当我使用users_contacts_attributes{contact_id: 5, order: 5} 更新用户时,它会创建两条记录,一条为order: nil& 另一条,order: 5我在参数中获取订单。

我要关注

  1. 不希望创建重复记录。

  2. 将记录保存在带有额外列的连接表中,即order

我的参数类似于以下

0 投票
1 回答
2029 浏览

ruby-on-rails - 特定关联模型的 Rails update_attributes

我有以下设置:

如果我打电话post.update_attributes(post_params)

以下内容在哪里post_params

评论新评论被创建并与帖子相关联。

有没有办法让我们在帖子上更新属性并仍然更新与帖子相关的特定评论?

也许是这样的:

所以我可以打电话post.update_attributes(post_params)并利用accepts_nested_attributes_foron 更新。

如果这是不可能的,那么通过更新相关评论来更新帖子的最佳方法是什么?

任何帮助将不胜感激。

0 投票
2 回答
162 浏览

ruby-on-rails - Rails5,嵌套形式,未定义参数

休斯顿,我们有一个问题:

形式:

问题:

FirstModelsController#create as HTML 参数处理:{"utf8"=>"✓", "authenticity_token"=>"f+D8AaVzM6ahrUyo/nwxISFEleVrXGxo8m30sIiLIe7gvG8J9KfONjuT09j6z3M4Rvw+n3Hm6PMddOtfbgjt5g==","first_model"=>{"first_name" , "last_name"=>"yyy", "merged_model"=>{"start_date(1i)"=>"2017", "start_date(2i)"=>"2", "start_date(3i)"=>"28 ", "second_model_id"=>"1"}}, "commit"=>"Create"} 不允许的参数:merged_model 不允许的参数:merged_model

第一个模型的控制器的强参数:

第一个模型接受合并模型的嵌套属性:

但是,在创建 FirstModel 之后,不会创建 MergedModel。试图以形式创建它:

但得到:

没有将 MergedModel 隐式转换为 Integer

完全不明白什么意思。。

还尝试从 FirstModel 的创建操作中创建一个新的 MergedModel,效果非常好:

并得到了同样的错误 - 没有隐式转换......

任何人都可以对此进行更多解释吗?我觉得将我的 MergedModel 的参数数组传递给 MergedModel 的参数...?我完全迷失在这里......

0 投票
1 回答
651 浏览

ruby-on-rails - Rails 5:fields_fornested_attributes 不保存(创建控制器失败)

我正在尝试在我的第一个实现中使用 fields_for 来管理以一种部分形式创建 has_many 关系。此表单部分本身是嵌套资源的一部分

到目前为止,我能够在没有 fields_for 嵌套表单的情况下成功渲染、保存和编辑表单。

当我在 form_for 中包含 fields_for、将参数列入白名单并在 #new 中构建对象时,我在控制台中收到此错误,因为它无法保存并重新呈现 #new 视图:

我该怎么做才能成功保存表单以及nested_attributes?

路线.rb

step_four.rb

ios_device.rb

_form.html.erb

step_fours_controller.rb

0 投票
1 回答
204 浏览

ruby-on-rails - Rails 5 接受_nested_attributes_for 使用 JSON POST 获取无法处理的实体

我认为我拥有能够发送嵌套属性的所有这些设置,但是,我不断收到 422 无法处理的实体,但没有错误消息。以下是我的配置方式:

scouting_report.rb

scouting_report_detail.rb

scouting_reports_controller.rb

以下是数据在架构中的外观:

日志报告 422,但没有错误:

在 2017-03-25 13:41:55 -0600 开始 POST "/scouting_reports.json" for 127.0.0.1 由 ScoutingReportsController#create as JSON 参数处理:{"scouting_report"=>{"crop_water_use"=>"Yes. Water已使用。", "crop_water_use_units"=>"IPD", "wind_speed"=>"12", "report_date"=>"2017-03-25T19:41:55Z", "scouting_report_details_attributes"=>[{"identifiaction" =>“看起来就在那里”、“动作”=>“治疗”、“无序”=>“”、“lon”=>“-97.989378”、“level”=>“3”、“lat”=> "40.875492", "disorder_id"=>158}], "wind_speed_degree"=>"10", "天空"=>"B", "crop_growth_stage"=>"Stage 1", "temperature"=>"68", "wind_speed_direction"=>"NW", "irrigation_comment"=>"如果没有受到刺激就灌溉作物", " stand_count"=>"12", "crop_condition_comments"=>"Comment about the conditions", "crop_id"=>"1234"}} (0.1ms) BEGIN (0.1ms) ROLLBACK Completed 422 Unprocessable Entity in 33ms (Views: 0.2毫秒 | 活动记录:4.4 毫秒)"12", "crop_condition_comments"=>"Comment about the conditions", "crop_id"=>"1234"}} (0.1ms) BEGIN (0.1ms) ROLLBACK Completed 422 Unprocessable Entity in 33ms (Views: 0.2ms | ActiveRecord: 4.4毫秒)"12", "crop_condition_comments"=>"Comment about the conditions", "crop_id"=>"1234"}} (0.1ms) BEGIN (0.1ms) ROLLBACK Completed 422 Unprocessable Entity in 33ms (Views: 0.2ms | ActiveRecord: 4.4毫秒)

原始 JSON 负载

只是需要另一双眼睛。我确定我只是缺少一些简单的东西。

0 投票
1 回答
463 浏览

ruby-on-rails - Rails 接受嵌套属性唯一性验证

我有一个简单的表格,可以管理公司的职位。我正在使用accepts_nested_attributesAPI 来实现这一点。用户可以使用加号/减号按钮添加/删除位置,并为每个位置选择用户和位置。我要强制执行的一项验证是,用户不能在同一家公司拥有多个职位。我是这样执行的:

但是,如果一个人被删除,我注意到一个错误 - 然后重新添加到同一家公司而不在两者之间保存。这是说明问题的示例:

验证失败:为用户将用户重复职位定位到公司

我可以做任何事情来允许这样的更改而不会导致分配验证失败(我也在数据库级别强制执行 - 这意味着这些会在服务器上引发 5xx 错误)?

0 投票
1 回答
229 浏览

ruby-on-rails - Rails - 不允许的嵌套子参数

父母得救了,孩子却没有。如果我添加landslide.sources.create,它会在sources表中创建一个正确的行,landslide_id但所有其他列都是空的。这是文件:

滑坡控制器.rb

sources_controller.rb

_form.html.haml

滑坡.rb 和 source.rb

** 路线.rb **

0 投票
0 回答
198 浏览

ruby-on-rails - 无法使用 Accepts_nested_attributes_for 编辑现有字段

我有一个@pitch功能accepts_nested_attributes_for。我希望能够在(我正在使用)的编辑页面内editadd features@pitchform_for

我尝试了很多类似的示例/教程和 QA,我的代码似乎是正确的,但我可能为自己创建了一个盲点,因为它不起作用:

显示current featuresnew field显示。我可以添加一个new feature,但是当我尝试添加时edit a current feature,它不会保存到database.

音高.rb

pitches_controller.rb

edit.html.slim(简体)

对我所缺少的有什么想法吗?

按照要求:

更新:

通过进一步的测试,我确实发现了一些有趣的东西:如果我只是更改当前字段,则不会提交任何内容。但是,如果在此操作之后我添加了一个新功能,那么之前的更改也会被提交。

将内联 JS 移至外部文件:

根据@max 的评论,我在 een 外部文件中用委托事件处理程序 (jQuery) 替换了内联 javascript。一切仍然正常,但结果相同......这是我的 jQuery 代码:

0 投票
1 回答
62 浏览

ruby-on-rails - 我们如何在rails中使用accepts_nested_attributes_for assocation更新后只获取新添加的对象

我的协会看起来像这样:

我们知道accepts_nested 属性在数据库中创建了一个新的嵌套对象,那么如何在AbcController 更新函数中获取所有新添加的(不存在的)def对象及其数据库ID?

0 投票
1 回答
43 浏览

ruby-on-rails - 显示页面不适用于 Accepts_Nested_Attributes_For

尝试在基本的 has_many 和 belongs_to 关联中学习 accept_nested_attributes_for。

问题是它在显示页面中不起作用...

我得到的错误是:

关于这条线:<%= @book.each do |b| %>

基本设置是:

作者

作者 _form.html.erb

作者的控制器

作者的 show.html.erb