草庐IT

After_Create

全部标签

ruby-on-rails - after_commit 真的运行了吗?

我在Rails3.0.8上并尝试使用after_commit回调。它在这里定义:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/transactions.rb#L210这里提到它是回调之一:https://github.com/rails/rails/blob/v3.0.8/activerecord/lib/active_record/callbacks.rb#L22考虑一下:classCar知道为什么它不起作用吗?我假设我正在正确使用它。 最佳答案

ruby-on-rails - 当还使用 after_initialize 回调时,如何解决 ActiveRecord (Rails 3) 中的 n+1 查询问题?

型号:classProject查找项目的语句:@projects=Project.includes(:user_roles)所以你可以看到,我告诉它在查询中包含用户角色关联。但是,我仍然看到n+1查询问题:它为每个项目找到一次角色。如果我从回调中删除self.user_roles的使用并查看日志,我可以看到它在2个查询中找到项目及其用户角色-一个用于项目,一个用于项目对于使用project_idin(1,2,3,4,5...,n)的角色。有没有办法解决这个问题?让我稍微澄清一下:虽然我愿意根据需要解决我的具体情况,但我更喜欢侧重于如何解决一般问题的答案。我能够编写一个kludge来获取

ruby-on-rails - rails 中的更新路线对 after_action react 不佳?

classFrogsController大家好。我想知道是否有人可以向我解释为什么rails中的更新路线不能将我的重定向后操作(底部的自定义方法)带回家。当我在after_action中包含更新时得到的错误是“缺少模板Frog/更新”。这将导致我在更新方法中手动添加redirect_tofrogs_path。谢谢! 最佳答案 after_action回调在操作完成后触发。您不能使用它来呈现或重定向。通过调用方法在操作本身中执行此操作:defupdate...redirect_homeend

ruby-on-rails - find_or_create_by - 不更新

我想向我的Controller提交一个产品ID和一个零售商ID,如果数据库中存在该组合,我想用提交的参数更新该记录,如果不存在,则创建一个新记录。我的Controller在下面,目前我可以看到,如果组合不存在,则会创建记录,但是当找到组合时,它会执行选择查询并且不会更新记录。我怎样才能让它更新而不只是选择?谢谢Controller:defAddNewPrice@newPrice=ProductPrice.find_or_create_by(product_id:params[:product_id],retailer_id:params[:retailer_id])end更新抱歉..刚

html - Rails 如何将参数从 Controller 传递到模型内部的 after_save

我有一个Rfqcontoller我正在创建新的或更新现有的Rfq,当我创建或更新对象被保存时,我想要的是因为我有很多引号参数我想用参数中的引号更新line_items表保存Rfq后在quote_price列中[:quotes]我知道这很令人困惑,但是谁是ror-ish应该知道我想问的一些提示。 最佳答案 如果您试图在您的模型中使用params散列,那么您就违反了MVC的原则。该模型应该独立于参数。如果您正在尝试执行以下操作:#controllerModel.foo#modeldeffooparams[:bar].reverse!en

ruby-on-rails - find_or_create ActiveRecord::RecordNotUnique 救援重试不起作用

使用ruby​​2.1.2和rails4.1.4。我对数据库中的电子邮件列有唯一约束。如果存在一个线程正在创建用户而另一个线程试图同时创建的竞争条件,则会引发记录不唯一的异常。我正在尝试通过重试来处理此异常,以便在重试时它将在find_or_create的SELECT期间找到客户。然而,它似乎并没有起作用。它用尽重试次数,然后重新引发异常。这是我最初做的:retries=10beginuser=User.find_or_create_by(:email=>email)rescueActiveRecord::RecordNotUniqueretryunless(retries-=1).z

ruby-on-rails - FactoryGirl create_list 具有不同的值

我正在尝试使用FactoryGirl创建项目列表,但我需要项目不按顺序排列。这就是我所拥有的,但我希望它成为DRYer。规范.rbcontext"threeoutoforder"dobeforedoFactoryGirl.create(:thing,ordering:3)FactoryGirl.create(:thing,ordering:1)FactoryGirl.create(:thing,ordering:2)endit"shouldsortthethingsinorder"doexpect(Thing.all.map(&:ordering)).toeq([1,2,3])ende

ruby-on-rails - heroku 上的 Rails : after push, 得到 "PG::UniqueViolation: ERROR: duplicate key value violates unique constraint"

这已经被问过好几次了(here和here等等)。每次我将我的Rails应用程序推送到Heroku时(至少在过去的几个月里,我会说),我都必须使用熟悉的方法重置我的keyActiveRecord::Base.connection.tables.each{|t|ActiveRecord::Base.connection.reset_pk_sequence!(t)}咒语。否则,当我尝试创建新记录时,我会遇到这样的postgresql故障:PG::UniqueViolation:ERROR:duplicatekeyvalueviolatesuniqueconstraint"users_clie

ruby - 电子表格 gem : can't create empty workbook

我正在使用https://github.com/zdavatz/spreadsheet版本0.8.3我有代码迭代一个集合并在同一个工作簿中为每个项目创建一个工作表。当集合为空时,执行的代码最终如下所示:io=StringIO.newbook=Spreadsheet::Workbook.newbook.write(io)最后一行加注:TypeError:can'tconvertnilintoIntegerspreadsheet/excel/writer/workbook.rb:636:in`pack'spreadsheet/excel/writer/workbook.rb:636:in`

ruby-on-rails - Rails 3 find_or_create_by

我正在关注http://railscasts.com/episodes/102-auto-complete-association一切似乎都很好。我正在尝试即时创建发票和客户。它确实有效。一切都很酷。客户所属帐户发票所属帐户发票属于_toclient但是,两个模型(客户和发票)都有一个强制属性:account_id。当我尝试动态创建新客户端时出现错误:client_id:-can'tbeblank我收到此错误的原因是无法创建客户,因为它需要客户模型中的account_id。如果我在客户模型中删除此行validates:account_id,:presence=>true,则会添加发票,