问题标签 [update-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.
ruby-on-rails - update_attributes 不适用于多对多嵌套属性
我在某些模型中有一些嵌套属性,例如:
当我@employee.update_attributes(params[:employee])
从控制器调用时,它会更新除地址之外的所有内容。但是,如果我raise params.inspect
将其复制到脚本/控制台中的变量中,它确实可以工作。例子:
所以你可以看到地址是从脚本/控制台更新的,但不是从我的控制器更新的。
如果这是信息过载,那么这个问题的简单版本是:
为什么我的地址没有更新?
ruby-on-rails - Rails:如何检查“update_attributes”是否会失败?
要检查是否buyer.save
会失败,我使用buyer.valid?
:
我如何检查是否update_attributes
会失败?
ruby-on-rails - 将布尔值传递给 update_attributes 的问题
我有以下模型:
但是当我尝试使用以下代码更新现有的 GuestCatering 时:
客人餐饮变量是一个有效的 GuestCatering 对象。更新后的guest_餐饮对象有错误,如下:
但是当我通过 a 时orderable => true
,一切都很好,没有错误。
这里有什么问题,为什么我不能将 orderable 设置为 false?
ruby-on-rails - 更新 Rails 时显示来自两个模型的错误消息
我正在从一种形式更新两个模型的属性。
当@user.update_attributes 产生错误时,事务停止并且错误消息显示在视图中。
但是,我想尝试同时更新@user 和@board 并获取两者的错误消息,以便用户可以一次更正所有错误。
我怎样才能做到这一点?
非常感谢您提前。
ruby-on-rails - Rails 从 OrdersController 更新用户模型的属性
这是我的代码:
订单控制器类
billingid
通过运行返回GATEWAY.store(credit_card, options)
我正在尝试将此返回的内容保存billingid
到:billing_id
用户模型中的列中。是否无法从非 UsersController 更新用户模型的属性?
简单地说,是不是不能从模型#2 的控制器更新模型#1 的属性?
谢谢
更新:在下面的人的帮助下,我能够验证两件事:1. result = work.params ['billingid'] 返回字符串 2. 我能够从任何控制器保存到不同的模型中
但是,即使我有 attr_accessible :billing_id 我仍然无法将结果保存到 User 表的 billing_id 列中。我成功地将结果保存在 Store 表的 store_name 列中,所以我不知道阻止我保存的用户模型是什么。
我跑了,
它是成功的。但,
即使 attr_accessible 设置正确,这也会失败。除了 attr_accessible 之外,还有什么可以阻止保存某些属性?感谢大家!
更新 2:用户模型
需要“摘要”
类用户 < ActiveRecord::Base
结束结束
更新最终:使用@thisusers.errors 的解决方案,我发现它正在尝试在此请求期间验证密码的存在。一旦我将其注释掉,它就会毫无问题地保存。我不确定为什么会这样,但我会从这里开始。谢谢大家,尤其是。dmarkow!
ruby-on-rails - rails-如何根据时间/日期更新属性
您将如何根据一天中的时间或日期来更新数据库中的属性。我有三个属性能量、饥饿和快乐,我想每小时减少十个,但我不知道该怎么做。我知道数据库中有时间戳,但我真的不知道如何使用它们。我也想每天根据他们的工作改变球员的技能。所以如果你有这份工作,每天智力加2。但我不知道如何每天添加 2。如果有人能帮我解决这个问题,我会很高兴的。我将不胜感激。
ruby-on-rails - 试图在 before_validation 中设置一个变量,但它不起作用
所以在我看来,我使用日历来选择一天并使用下拉菜单来选择时间。因此,我使用一种before_validation
方法将其组合在一起:
提议的时间.rb
当我创建一个对象时它工作得很好,但当我更新它时就不行了。
日志
但是当我将它用于更新时,它会完全失去它并恢复到原来的状态。这让我觉得它实际上并没有被拯救。因此,为了帮助解释下一个的上下文,我有一个ProposedTime
对象,它是Consultation
(每个咨询有 3 个建议的时间)的子对象,它也有accepts_nested_attributes_for :proposed_times
:
咨询.rb
日志
我认为它可能在 update_attributes 上引发了错误,但似乎并非如此。有任何想法吗?
ruby-on-rails - 当表单值在rails 3.1中包含问号时,update_attributes NoMethodError
当我尝试使用包含“?”的值更新字段时,update_attributes 返回:
我的控制器能够:
- 使用“?”创建记录 作为字段名。
- 如果字段包含“?”,则编辑/保存记录 保持不变
- 如果字段包含“?”,则编辑/保存记录 更改为“测试”
不能够:
- 如果字段包含“?”,则编辑/保存记录 更改为“?测试”或“测试?”
- 如果包含“测试”的字段更改为“?”,则编辑/保存记录
我想 active_record 会忽略未更改的字段,这就是代码在这种情况下有效的原因。
我还在日志中看到 BEGIN 和 ROLLBACK,所以我假设错误是由于 update_record 在将字符串传递到数据库之前未能引用字符串引起的。这是一个错误还是我应该明确引用表单输入?
我的更新方法:
模型是空白的。
使用 update_attributes!,消息是(编辑,仍然):
抱歉,我提到的 ArgumentError 无关紧要。
原始堆栈跟踪: http: //pastebin.com/JQ3Cmrba
通过恢复到 rails 3.0.7 和 mysql 0.2.7 修复。
可能的原因:
“用户名”和“密码”是接口表中的字段。interface_controller 继承自 base_controller:
ruby-on-rails - 如何在不实际保存更改的情况下完成 update_attributes
从根本上说,我想做一个 ActiveRecord “update_attributes”,同时让 ActiveRecord 更改处于待处理状态。有没有办法做到这一点?如果您想知道我为什么想要这个,请继续阅读。
我有一个由三部分组成的表单:一个静态部分(相互独立的文本字段),一组选择(随着条目的填写而增长),以及一个显示选择对一组相关对象的影响的部分。更改选择需要往返服务器以确定效果,并且某些选择会影响未来选择的选择。选择被建模为来自基本模型的 has_many 关联。例如(注意 [] 条目指定 HTML-SELECTs)
我已将表单设置为典型的嵌套属性表单。When a selection is changed, I post back the fields with AJAX such that I'm getting the typical params hash (eg params[:basemodel][associated_models_attributes][0][:field_name]). 我想把它放到一个未保存的 ActiveRecord 中,这样我已经用来生成原始页面的部分内容可以用来生成 JS 响应(我为此使用了 js.erb 文件)。使用 Basemodel.new(params[:basemodel]) 给出错误
发生这种情况(我认为)是因为现有关联记录中的 ID(在当前记录中具有非空白 ID)与“新”调用生成的空白 ID 不匹配。
我可以做一些非常笨拙的事情并创建一些看起来像 ActiveRecord 的东西(至少足以满足我的部分),但我必须认为这是一个足够普遍的问题,因此有一个很好的解决方案。
ruby-on-rails - Rails 嵌套表单不更新
我在获取 update_attributes 以更新表单中的嵌套模型时遇到问题。我没有任何错误,但嵌套属性没有保存。以下是相关代码:
用户型号:
成就模型:
编辑用户表单:
...
编辑方法:
更新方法:
但是当我检查@user.achievements 数组时,即使我填写了表格,它也总是空的。有谁知道我做错了什么?