问题标签 [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.

0 投票
2 回答
31174 浏览

ruby-on-rails - Rails update_attributes 方法是更新数据库中模型的最佳选择吗?

我正在介绍的 Rails 1.1.6 教程建议使用update_attributes更新模型的方法,如上面列出的控制器中的示例代码所示。查看 Rails 文档,我想知道为什么update不首选该方法,尤其是因为它的命名如此合乎逻辑。

0 投票
1 回答
2661 浏览

ruby-on-rails - ruby-on-rails:update_attributes 覆盖模型验证?

我有一个典型的 Post 模型:

在控制器中,我有:

但是,如果第 2 行的验证失败,则仍将创建 Post,除非第 4 行被注释掉。

1)为什么?

2)关于修复的建议?

谢谢

0 投票
1 回答
97 浏览

ruby-on-rails - Rails:在对象上保存字符串——语法问题?

我正在尝试编写一个简单的函数来清理文件名字符串并更新对象。当我保存测试字符串时它可以工作,但是当我尝试保存我创建的字符串变量时,什么也没有发生。但是当我返回字符串时,输出似乎是正确的!我错过了什么?

非常感谢。

0 投票
11 回答
309640 浏览

ruby-on-rails - Rails:#update_attribute 与 #update_attributes

这两个都将更新一个对象,而无需明确告诉 ActiveRecord 进行更新。

Rails API 说:

更新属性

更新单个属性并保存记录,而无需经过正常的验证过程。这对于现有记录上的布尔标志特别有用。当混入验证模块时,Base 中的常规 update_attribute 方法被替换为 this,默认情况下。

更新属性

从传入的 Hash 中更新所有属性并保存记录。如果对象无效,则保存失败,返回false。

因此,如果我不想验证对象,我应该使用#update_attribute. 如果我在 a 上有此更新怎么办#before_save,它会 stackoverflow 吗?

我的问题是#update_attribute也绕过了之前的保存或只是验证。

另外,将散列传递给的正确语法是什么#update_attributes...查看顶部的示例。

0 投票
1 回答
382 浏览

asp.net-mvc - 使用 MVC2,我如何验证日期是否在给定的日期范围内?

我有一个要求,在 MVC2 Web 应用程序中,验证用户至少 13 岁。是否有日期/日期时间验证属性可以让我这样做?

0 投票
1 回答
8205 浏览

ruby-on-rails - Rails - update_attributes 反对验证

所以我有一个用户模型,有登录名、电子邮件地址、密码、密码确认、姓名、头像(图片)等。前5个有验证,基本上说明所有5个都需要存在才能创建一个新模式。

但是,这会给我带来更新方面的问题。

我有一个编辑页面,用户只能编辑他们的名字和头像。我目前不打算让他们更改登录名,我希望从不同的页面更改电子邮件和密码。

所以编辑表单看起来像这样:

如果我尝试执行 a @user.update_attributes(params[:user]),那么因为只有 2 个参数是nameand avatar,所以更新失败,因为需要密码、密码确认、电子邮件等内容来验证条目,而它们根本不存在于该表单中。

我可以通过这样做来解决这个问题@user.update_attribute(:name, params[:user][:name]),但是我担心避免验证是否是一件好事™。特别是关于密码更新之类的东西,我确实需要验证新密码。

还有其他方法吗?

如果我只是使用 update_attribute for and做到这一点,我将如何去做呢?:name:avatar

这行得通吗?

这是一种可接受的方式来做到这一点......?


--edit as follow up --
Okie,我按照你的建议做了尝试

所以它正在做!版本,在浏览器中捕获并显示的异常是:

服务器日志中的信息是:

嗯。看着这个,我才意识到它正在提交"id"=>"tester". 现在,我设置了我的路线,以便它显示用户登录名,而不是 user_id... 这可能是为什么?它正在尝试使用 查找用户的更新user_id == tester,但由于它不存在,它会尝试创建一个更新?由于路线,这实际上是我做错的事情吗?

嗯... rake routes 告诉我该路线是:

我在user.rb文件中设置了这样的路线:

但它肯定一直在显示login而不是一直显示id。但我也在更新操作的开头做正确的 a @user = User.find_by_login(params[:id]),然后更新那个@user

我很困惑。>.<


第二次更新:

我的User.rb验证内容如下:

hashed_pa​​ssword 部分在这里:

u.attributes给我

嗯......好吧,这就是你所说的,关于虚拟属性password实际上不存在......那么我该如何解决?臭虫,在这里,我以为我在摆弄自己的身份验证码很聪明...

更改为其中一个身份验证插件有多容易?我需要创建一个新的用户模型吗?或者该插件应该能够与我当前的插件一起使用吗?

感谢到目前为止的所有帮助,顺便说一句!:D

0 投票
3 回答
4368 浏览

ruby-on-rails - 如何根据条件更新属性?

我需要更新属性,但仅适用于具有特定条件的行,例如

我该怎么做?

0 投票
2 回答
6318 浏览

ruby-on-rails - 如果 `update_attribute` 失败,它会返回什么?

我有以下代码

有没有Line 44可能失败的机会?因为数据库内存已满或网络故障。在那种情况下会发生什么?如果这会产生问题,有什么更好的方法来避免它?update_attribute如果失败会返回什么?

0 投票
1 回答
807 浏览

ruby-on-rails - 在更新中对accepts_nested_attributes_for 和habtm 关联进行rails 验证会重置关联

在 Rails 2.3.8 中,如果我在验证中循环甚至检查 habtm 关联,则在对accepts_nested_attributes_for 关联进行验证时遇到问题,课程已加载并且任何更新都丢失了。例如,我有以下架构:

以及以下型号:

如果我调用以下内容:

这基本上是:
最后一课以 29 的活动ID 开始,在课程
集上调用 update_attributes 尝试将活动 ID 设置为 3
,它返回 true 但是当我们查看最后一课时它没有改变
,然后将活动 ID 设置为 29,即. 同样,调用 update_attributes
activity_id 仍然是 29
,但随后再次调用尝试将其设置为 3
,这一次它更新了课程。???

我的代码有问题吗,这对我来说似乎很奇怪,我在网上找不到任何类似的东西。

想我要去拍头的时刻了!

0 投票
1 回答
2763 浏览

ruby-on-rails - 嵌套模型形式和 update_attributes

我有一个嵌套模型表单,在类 Project 和类 TeamMember 之间具有一对多关系,并且在控制器中,更新函数如下:

@project = Project.find(params[:id])

现在,我想在保存之前为某些团队成员设置一些表单中未设置的字段。我不能按原样使用 update_attributes 函数。

最好的方法是什么?

谢谢,尼古拉斯。