问题标签 [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 在某些情况下不会更新nested_attributes
我正在用 rails 3.2.8 编写一个小的 CMS 应用程序。段落(基本上包含例如新闻文章的标题、正文和日期)和页面(由许多段落组成,例如许多新闻文章)有一个模型。如果日期更改,以下内容仅更新段落,否则,即使正文更改,该段落也不会更新!?
下面,您可以找到模型的相关部分:
页面.rb
段落.rb
有人知道这种奇怪行为的原因吗?
ruby-on-rails-3 - rails如何在与父级更新时合并嵌套属性中的用户ID
我正在使用导轨 3.0.9
我有has_many :through
关联模型,用户可以在创建新父记录时创建新的子记录,在更新父记录时,用户可以创建/删除子记录
例如:
在posts_controller.rb 中,我还保存/更新评论记录fields_for
,用于在Post 中形成nested_attributes,form_for
并按预期形成参数。
问题是:
在这里,我无法合并user_id
每个新嵌套评论属性的列,params[:post][:comments_attributes]
其中将被忽略attr_accessible
。
有没有最好的方法将user_id
列合并/分配给每个评论记录?
ruby-on-rails - 创建然后更新 - Rails
我在下面有一组通过表单提交的参数
我想在属于类别模型的链接模型中创建一个新的“链接”记录。我在链接控制器中的“创建”操作如下所示
如果我只是在没有更新属性的情况下执行@link.save,它只会保存评论、url 和类别 ID。但是,上面创建了 2 条记录,一条评论、url 和 category_id,另一条包含所有数据。
我怎样才能确保这只会创建一个包含所有信息的记录?
更新 如果我可以用 3 个参数创建记录,然后用剩余的参数(links_attributes)更新它,我会很好......只是不知道该怎么做。
这是我提交时得到的输出:
这是我的表格:
这是我的路线:
ruby-on-rails - Rails update_attributes 不更新记录
我的“entries_controller.rb”中有以下代码
当我从客户端向服务器发送 put 请求时,我的控制台会显示:
如您所见,旧记录并未真正更新。即使 if 子句被评估为真。查看“title”的值没有从“Home”更改为“Updated Home”。
我想知道这是什么错误?它说它更新了,但它并没有真正更新。
有人可以帮我理解这一点吗?
谢谢
ruby-on-rails - Rspec any_instance should_receive 应该收到以下消息但没有
我在 rspec 的脚手架测试中遇到问题,其中 any_instance.should_receive 抛出错误:Failure/Error: Unable to find matching line from backtrace 确切地说,一个实例应该收到以下消息但没有:update_attributes
Rspec 代码,使用 FactoryGirl 和 strong_parameters:
控制器代码:
测试输出:
鉴于我在控制器中打印出更新的对象并且它是正确的,为什么测试失败了?
谢谢!
ruby-on-rails - Rails - 如何在不使用 Accepts_nested_attributes_for 的情况下管理嵌套属性?
我的问题是我遇到了accepts_nested_attributes_for 的限制,所以我需要弄清楚如何自己复制该功能以获得更大的灵活性。(到底是什么让我感到困惑。)所以我的问题是:如果我想模仿和增加accepts_nested_attributes_for,我的表单、控制器和模型应该是什么样子?真正的诀窍是我需要能够使用现有的关联/属性更新现有的和新的模型。
我正在构建一个使用嵌套表单的应用程序。我最初将此 RailsCast 用作蓝图(利用 Accepts_nested_attributes_for):Railscast 196: Nested Model Form。
我的应用程序是带有作业(任务)的清单,我让用户更新清单(名称、描述)并在一个表单中添加/删除关联的作业。这很好用,但是当我将它合并到我的应用程序的另一个方面时遇到了问题:通过版本控制历史。
我的应用程序的很大一部分是我需要为我的模型和关联记录历史信息。我最终推出了自己的版本控制(这是我的问题,我在其中描述了我的决策过程/考虑因素),其中很大一部分是一个工作流程,我需要创建旧事物的新版本,对新版本进行更新,存档旧版本。这对用户来说是不可见的,他们认为这种体验只是通过 UI 更新模型。
代码 - 模型
代码 - 当前形式(注意:@jobs 被定义为清单控制器编辑操作中此清单的未归档作业;@checklist 也是如此)
代码 - 来自 checklists_controller.rb#Update 的片段
这就是我遇到 accept_nested_attributes_for 限制的地方(它在这里记录得很好。我得到“找不到 ID=X 的 Model1 和 ID=Y 的 Model2”异常,这基本上是按设计的。
那么,如何创建多个嵌套模型并在父模型的表单上添加/删除它们,类似于 accept_nested_attributes_for 所做的,但我自己?
我见过的选项 - 是最好的选项之一吗?真正的诀窍是我需要能够使用现有的关联/属性更新现有的和新的模型。我无法链接它们,所以我将命名它们。
繁文缛节(在 github 上) Virtus(也在 github 上)
谢谢你的帮助!
ruby-on-rails - Rails 在验证之前会自动转换吗?
我有一些表格,我将参数传递给 update_attributes。还有一些值,它是一个整数(在数据库中),但在形式上它是一个文本,我想在 before_validation 中解析它。
控制器:
模型:
问题是,我希望在before_validation
self.capital 中仍然是一个字符串。但它是一个整数。所以在 Rails 自动进行.to_i
强制转换之前的某个地方。我该如何预防/解决这个问题?
ruby-on-rails - Rails:同时更新多个模型的多个属性
我想同时更新从两个不同模型中的单个表单中获取的值,为此我编写了以下代码:-
但是上面的代码给出了以下错误
ActiveRecord::RecordInvalid
验证失败:开始日期不能为空
以下是我使用的两个模式,@mess的MessType模型和@mess_price的MessPrice模型:
ruby-on-rails-3.2 - ActiveRecord::RecordNotSaved update_attributes 无法解释的错误
使用 Rails 3.2 我收到一个 ActiveRecord::RecordNotSaved 并且看不到原因。我唯一想到的是某种 gem 冲突,但除此之外,据我所知,此错误违反了所有 Rails 约定和文档。
任何帮助都将受到高度赞赏,因为我的理智很快就会受到威胁。
ActiveRecord 类
我收到以下错误:
这是我的 Gemfile:
ruby-on-rails - rails update_attributes don't update value
When trying to update the value read_at from Message model it don't have any kind of effect using the update_attributes function.
Here is the Message table
Here is Message Model
Here is User Model
Then at the terminal
I get this outputs:
For sure I'm missing something here, but I can't see where it is after changing and rechanging the has_many and the belongs_to from the associations, because I did put the read_at over the attr_accessible list HELP!