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

ruby-on-rails - 嵌套模型,update_attributes 不起作用

我很难理解我认为是教科书更新示例的内容。搜索SO但找不到答案。简而言之,当我单击提交时,配置文件模型中的 user_id 会被清除,并且不会保存其他数据。我正在使用 Rails 3.2.2。

这是我所拥有的...

用户模型...

轮廓模型...

用户控制器...

嵌套形式...

编辑:我编辑了 UsersController 以包含新操作。为什么新操作会影响编辑/更新操作?

0 投票
2 回答
1642 浏览

ruby-on-rails-3 - update_attributes rails 区分创建和更新

我有一个使用 update_attributes 的嵌套表单(非常类似于 RailsCasts 中显示的表单),它更新父对象以及更新和创建新的子对象。我希望能够区分何时创建子对象、何时更新子对象以及何时更新父对象。反正有这样做吗?我的直接目标是在创建新的子对象时推送广播。

尝试在子模型中使用 after_create 对我的目的不起作用,因为我试图在 application_controller.rb 中调用一个动作。

代码是我的父对象控制器是

如果我使用调试器,params[:parent_object] 返回这个

作为参考,最后一位是新的子对象,第一位是更新父对象,中间是更新子对象。

我不知道正确的路径是尝试弄乱参数还是考虑不同的路线。任何建议将不胜感激。

谢谢,威尔斯

0 投票
1 回答
526 浏览

ruby-on-rails-3 - Rails - Update_attributes 正在工作,现在出现未定义的方法错误

这是有效的,但现在我在调用 update_attributes 时收到以下错误:

令我困惑的是我的@song 对象中没有“名称”。(见下面的模式),但艺术家做到了。歌曲和艺术家通过多对多关系关联。似乎 update_attributes 也在尝试更新艺术家对象?没想到它应该这样做。真的不确定这里有什么帮助,我们将不胜感激。

谢谢,

架构

示例参数。

0 投票
2 回答
2463 浏览

ruby-on-rails - before_create 仍然保存

在一切之前,我要感谢您的帮助

我有一个这样的模型:

它将采购订单保存在名为 Carted_Products 的表中,该表连接到 belogings 中的用户和产品

问题是,当执行之前创建时,我希望它更新表中的记录,如果记录已经存在,则添加控制器传递的数量,如果不存在,则创建一个,就iv完成而言,它会更新数量,但仍然使用按顺序传递的参数创建一个新的,我希望它只更新,而不是在找到记录时执行这两个操作

谢谢你的耐心

编辑:

更新属性后尝试返回false,它取消过滤器,并且不创建或更新属性

0 投票
4 回答
160 浏览

ruby-on-rails - 创建新评级时更新帖子属性

我有一个帖子模型,它有很多评级,我想将每个帖子的平均评级数字存储在帖子评级数据库列中。我在帖子模型上有一个计数器缓存,用于计算评分的数量。

我的 post.rb 中有以下代码

我把它作为 before_save 回调,所以每当编辑和保存帖子时,它都会更新评级,不是很有用。

有没有一种方法可以在创建新评级时调用此方法?

0 投票
1 回答
892 浏览

ruby-on-rails - form_for 块内的 password_field_tag ( ruby​​ on rails )

我的问题是指通过在更新属性之前确认用户的密码来设置视图和控制器以更新用户的“配置文件”。正如您之前可能已经看过一百万次一样,用户会转到 /users/:id/edit,在文本字段中输入新电子邮件,在密码字段中输入当前密码,然后单击提交按钮最终更新用户的电子邮件。如果输入的密码不正确,则再次呈现编辑模板,否则将使用新电子邮件更新用户记录并重定向到 :show (或适用于应用程序的任何内容)。在更新操作中,我认为坚持使用 update_attributes 方法是有意义的。然而,当前的密码值最终会让我们失望。

我真正要问的是我的方法是否有问题。我最终在 form_for 块中为 :current_password 字段调用 password_field_tag ,以便使用 params[:user] 调用 update_attributes 而不会使 attr_accessible 生气。但是后来我在已经这样做的网站中查找了几个表单(例如 hulu 和 destroyallsoftware),它们似乎接受了用户哈希中的 :current_password 值(假设它们是用 rails 构建的)。查看 twitter 的设置页面,看起来他们在 param 中的单独哈希中检索到这个(所以 params[:current_password] 而不是 params[:user][:current_password])。

在 form_for 中使用 password_field_tag 有错吗?这些其他网站是如何真正做到这一点的?我唯一能想到的是他们要么从参数哈希中删除 :current_password 要么单独分配每个属性。

这是我基本上结束的:

否则,这是我想到的另一种方式

或者,我应该在控制器中执行此操作吗?:

任何建议表示赞赏。

PS - 此外,您将如何重构该更新操作?我尝试了一个 before_filter 来使用 :current_password 进行身份验证,并在 #update 中只保留 #update_attributes 部分,但它有点乱。这篇文章已经足够长了,所以如果我下周无法弄清楚,也许我会把它作为一个单独的问题发布。

0 投票
1 回答
633 浏览

ruby-on-rails - update_attributes() 不适用于嵌套属性和回形针?

我的模型描述了段落和图像,其中每个段落都有多个图像。对于图像处理,我使用回形针。对于批量分配,我将图像用作段落的nested_attributes。相关代码:

模型/段落.rb

模型/图像.rb

paragraph.text 和 image.caption 是临时属性(不在数据库中)。如果我在控制器或 rails 控制台中更新一个段落(假设 id=1 的图像确实属于第一段),则以下内容会按预期更新paragraph.text,但根本不更新image.caption:

但是在不使用回形针的类似设置(嵌套临时属性)中,它可以按预期工作,例如对于页面有多个段落的页面:

这会按预期使用临时文本属性更新页面和嵌套段落的值,这让我猜测,这可能是回形针问题......

任何帮助表示赞赏!谢谢!!!

0 投票
1 回答
905 浏览

ruby-on-rails - Rails`update_attributes`未定义方法`first`为nil:NilClass

我正在尝试在记录上使用 update_attributes,但它失败了,我不知道为什么,我必须错过一些明显的东西,因为我已经多次使用该方法。

我正在尝试为Globalize3用于其名称变量的模型播种数据。

请注意, City 没有名为 的列name

在控制台中,我做类似的事情没有问题city.update_attributes(name: "new name"),但是下面的代码(in seeds.rb)总是失败,Undefined method首先是for nil:NilClass

with_locale被定义为:

0 投票
3 回答
2387 浏览

ruby-on-rails - Update_all 或 update_attribute 不更新列

我有一个用户可以通过电子邮件发送的状态报告,我想在交付操作完成后将列 :sent_mail 更新为 true。

和表类

但是,在控制台中,sent_mail 仍然设置为 false。任何想法为什么这不起作用?谢谢!

0 投票
0 回答
222 浏览

ruby-on-rails - Rails 3,如何使用单个 check_box_tag 或 Confirm-/Refuse-Buttons 更新 habtm 关系

我有一个habtm 模型,例如:

具有针对重复控制器的标准操作(索引、显示、新建、编辑、创建、更新、销毁)。

鉴于单个重复(/recurrences/10 -> show-action),我尝试创建/更新用户的参与。当我在提到的视图中执行以下操作时:

一切正常,我可以添加或删除一个或多个用户的参与。

但我喜欢这样做——只针对一个用户,即 current_user!我尝试使用以下来源:

哪个不起作用,更详细

  • 更新未更改状态:不参与,不做任何事情:正确!
  • 更改状态:从不参与 - 到参与,适用于 current_user,但也会删除其他用户的状态:错误!
  • 改变状态:从参与到不参与,不会改变任何事情:错!

欢迎任何帮助!

最后,我想将 Check-Box 减少为 Confirm-/Refuse-Buttons with hidden-fields for the increasing ,但可能有更简单的rails-way?