问题标签 [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 - Rails update_attributes 方法是更新数据库中模型的最佳选择吗?
我正在介绍的 Rails 1.1.6 教程建议使用update_attributes
更新模型的方法,如上面列出的控制器中的示例代码所示。查看 Rails 文档,我想知道为什么update
不首选该方法,尤其是因为它的命名如此合乎逻辑。
ruby-on-rails - ruby-on-rails:update_attributes 覆盖模型验证?
我有一个典型的 Post 模型:
在控制器中,我有:
但是,如果第 2 行的验证失败,则仍将创建 Post,除非第 4 行被注释掉。
1)为什么?
2)关于修复的建议?
谢谢
ruby-on-rails - Rails:在对象上保存字符串——语法问题?
我正在尝试编写一个简单的函数来清理文件名字符串并更新对象。当我保存测试字符串时它可以工作,但是当我尝试保存我创建的字符串变量时,什么也没有发生。但是当我返回字符串时,输出似乎是正确的!我错过了什么?
非常感谢。
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
...查看顶部的示例。
asp.net-mvc - 使用 MVC2,我如何验证日期是否在给定的日期范围内?
我有一个要求,在 MVC2 Web 应用程序中,验证用户至少 13 岁。是否有日期/日期时间验证属性可以让我这样做?
ruby-on-rails - Rails - update_attributes 反对验证
所以我有一个用户模型,有登录名、电子邮件地址、密码、密码确认、姓名、头像(图片)等。前5个有验证,基本上说明所有5个都需要存在才能创建一个新模式。
但是,这会给我带来更新方面的问题。
我有一个编辑页面,用户只能编辑他们的名字和头像。我目前不打算让他们更改登录名,我希望从不同的页面更改电子邮件和密码。
所以编辑表单看起来像这样:
如果我尝试执行 a @user.update_attributes(params[:user])
,那么因为只有 2 个参数是name
and 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_password 部分在这里:
u.attributes
给我
嗯......好吧,这就是你所说的,关于虚拟属性password
实际上不存在......那么我该如何解决呢?臭虫,在这里,我以为我在摆弄自己的身份验证码很聪明...
更改为其中一个身份验证插件有多容易?我需要创建一个新的用户模型吗?或者该插件应该能够与我当前的插件一起使用吗?
感谢到目前为止的所有帮助,顺便说一句!:D
ruby-on-rails - 如何根据条件更新属性?
我需要更新属性,但仅适用于具有特定条件的行,例如
我该怎么做?
ruby-on-rails - 如果 `update_attribute` 失败,它会返回什么?
我有以下代码
有没有Line 44
可能失败的机会?因为数据库内存已满或网络故障。在那种情况下会发生什么?如果这会产生问题,有什么更好的方法来避免它?update_attribute
如果失败会返回什么?
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
,这一次它更新了课程。???
我的代码有问题吗,这对我来说似乎很奇怪,我在网上找不到任何类似的东西。
想我要去拍头的时刻了!
ruby-on-rails - 嵌套模型形式和 update_attributes
我有一个嵌套模型表单,在类 Project 和类 TeamMember 之间具有一对多关系,并且在控制器中,更新函数如下:
@project = Project.find(params[:id])
现在,我想在保存之前为某些团队成员设置一些表单中未设置的字段。我不能按原样使用 update_attributes 函数。
最好的方法是什么?
谢谢,尼古拉斯。