问题标签 [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.
python - 解决嵌套属性中的 AttributeErrors
我正在编写一个小型模拟类来做一些测试。
但是这个类需要支持具有嵌套属性的想法。
这个例子应该提供一些关于这个问题的见解:
从上面的类,我们可以有:
我知道我可以添加回退__getattr__
的属性以避免出现 AttributeError,但是如果我需要这样的东西是有效的怎么办:
如果对象被调用,我知道要返回什么,f.x.y.z()
但我只需要找到一种方法来实现z()
它是有意义的。
sql - SQL 子查询 COUNT CASE
如果嵌套子查询的计数为 0,我希望 SELECT 查询返回特定值...
这不起作用这种语法有什么问题?
ruby-on-rails - RoR:fields_for 和 partials
我正在使用nested_attributes 将产品关联回交易。我需要在产品模型中添加一个日期。我想添加一个链接以将 date_select 设置为今天。
这是视图:
和部分:
这 ????应该读取 transaction_trans_products_attributes_#number#,#number# 正确显示为文本字段,po 文本字段读取 id="transaction_trans_products_attributes_0_po" 下一个 trans_product 具有 id="transaction_trans_products_attributes_1_po"
如何将此计数器值放入我的 link_to_function 参数中?
谢谢
python - 伪字典作为属性
我有一个 Python 类C
,它应该有两个伪dict
sa
和b
. 术语伪字典意味着字典实际上并不存在,并且每次访问键时都会“重新计算”它们。
在伪代码中,这看起来像这样:
a
我可以为and实现一个类b
,但由于两者都只有几个简短的方法,我想知道是否有更优雅和更紧凑的方法来做到这一点。
ruby-on-rails - rails: create Parent, if doesn't exist, whilte creating child record
Any best practices for the following?:
I have Manufacturer model that has_many Inventory
In my new Inventory form I want a field that maps to Manufacturer.name so that when one submits the new Inventory form the app:
- searches for a manufacturer with the 'name' from the form
- if it exists then assign the id to @inventory.manufacturer_id and save @inventory
- if it doesn't exist then create the manufacturer with the 'name' from the form, assign the id to @inventory.manufacturer_id and save
- have validations work on the new Inventory form
- such that, if the the Inventory form fails validation on a field other than 'name'
- the 'name' field will be repopulated with whatever the user entered (but a new manufacturer is not created unless the form passes validation)
- such that, if the the Inventory form fails validation on a field other than 'name'
ruby-on-rails - Rails 嵌套模型属性“accepts_nested_attributes_for”在创建时可能存在错误
我希望在 rails v2.3.8 中发现一个错误,但我在这里问以防我只是在做一些愚蠢的事情。
我有一个描述装运的 3 层深嵌套模型(即装运 -> 盒子 -> 盒子中的行项目)。装运和箱子是同时创建的,但订单项从下订单时就已经存在,因此订单项只需要与它们所在的箱子相关联。
创建方法shipment
给我这个错误:
并显示它试图执行的 SQL:
请注意,vendor_shipping_box_id
它不在引号中。
如果我在控制台中运行此查询:
我得到了预期的结果。奇怪的是,该update
方法工作正常
如果需要,我可以发布更多详细信息,但是 Rails 生成的 SQL 应该有vendor_shipping_box_id
引号,这就是导致ActiveRecord
错误的原因,对吗?还是我错过了什么?
(注意,我的模型/控制器/视图都是根据 Ryan Bates 的 RailsCasts ep: 196 和 197 设置的)
更新:我更新到 Rails 3.0,并且 create 方法按预期工作。所以这绝对是一个错误。报告以前版本的软件的错误是否合适?我在哪里可以找到有关 Rails 错误/错误报告的文档?
ruby-on-rails - 如何在 form_for 中使用多个“一对多”嵌套属性
鉴于用户有很多信用卡并且信用卡有很多地址,我正在尝试创建一个表单来同时创建一个用户和信用卡的地址
相关型号代码:
控制器代码
查看代码
所以我遇到的问题是地址字段没有显示。我尝试添加@user.credit_cards.addresses.build
到控制器,但出现undefined method 'build' for nil
错误。
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
ruby-on-rails - 带有水印处理器的多个回形针附件
我在使用回形针上传多个附件并使用水印处理它们时遇到了很多麻烦。
我有 2 个模型,广告和照片。广告 has_many :photos 和照片 belongs_to :ad。
在 /models/ad.rb 中更准确地说,我有:
我的 photo.rb 文件如下所示:
在我看来,我用它来添加文件字段
在我的控制器中,在我4.times {@ad.photos.build}
用来生成文件字段的编辑操作中。
如果我不使用水印处理器,如果我使用普通的 has_attached_file 声明,这一切都可以正常工作,如下所示:
但是当我使用水印处理器时,我总是会收到这个错误:
参数还可以,据我所知
水印处理器 /lib/paperclip_processors/watermark.rb 如下所示:
我已经在普通应用程序中尝试过处理器,没有多个附件,它运行完美。据我所知,它不适用于nested_attributes。
该应用程序是带有 ruby 1.8.7 和回形针 2.3.11 的 rails 2.3.5
如果您能提供任何帮助,我们将不胜感激,因为我已经尝试了 2 天了:)
ruby-on-rails - 使用 accept_nested_attributes_for 修改连接模型上的属性
简单地说,一个联系人可以有各种关联的时间窗口,这些时间窗口可能会或可能不会作为计划活动。以机智:
楷模
看法
这会提交如下内容:
控制器中的更新操作基本上是库存,除了处理另一个相关模型的另一个实例,我使用 Advanced Rails 食谱书中的“处理多个模型”示例进行编码。
根据this API doc,我认为上面应该可以工作。但是,有关时间表的任何内容都没有更新。这显示在服务器日志中:
(NetBeans 在输出中给了我那些愚蠢的“[0m”。我不知道那里出了什么问题。)
SQL 显示“活动”布尔字段在选中时设置为 0。如何让它正确设置活动位?
作为后续行动,我将如何组织它以完全摆脱 Schedule“连接”?我想我需要从表单中提交一个带有时间表的 :_delete,但是当涉及一个复选框时,我将如何有条件地执行此操作?
感谢您的任何帮助,您可以提供。事实证明,Rails 对我来说是一个广阔的主题,我想“正确地”做它。我真的很接近这里,但必须有一种方法可以做到这一点——不仅仅是正确的——而且是优雅的。视图代码感觉太麻烦了,不能成为正确的 Rails。;-)