- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
如果我执行以下操作:
@user.name = "John"
@user.url = "www.john.com"
@user.save
如果我使用after_save
@user.url = "www.johnseena.com"
@user.save
当我这样做时会发生什么?
我相信它应该保存值,因为“after_save”回调。
最佳答案
在我看来,如果你在 after_save
回调中调用 save
函数,除非你在开始处设置保护,否则它将陷入递归。像这样
class User < AR::Base
after_save :change_url
def change_url
#Check some condition to skip saving
url = "www.johnseena.com"
save #<======= this save will fire the after_save again
end
end
但是,除了放置守卫外,您还可以使用 update_column
def change_url
update_column(:url, "www.johnseena.com")
end
在这种情况下,它不会触发 after_save
。但是,它会触发 after_update
。因此,如果您对该回调有任何更新操作,那么您将再次进行递归:)
关于ruby-on-rails - 保存对象时 after_save 如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12835029/
我无法在谷歌上找到它。我有 3 个模型。 模型 1 -> has_many 模型 2 -> 有很多模型 3 模型 1 具有确定可以创建多少个模型 2 的字段。并且模型 2 具有字段以了解必须创建多少个
这是我的模型代码: after_create :notify_cards_create after_destroy :notify_cards_destroy after_update :notify
这可能是一个愚蠢的观点,但我没有找到解决方案。 我有一个带有类方法的简单模型 update_menu我希望在每次保存实例后调用它。 Class Category attr_accessible :
如何分离回调,以便 after_create 运行一组代码,而 !after_create 可以这么说,运行另一组代码? 最佳答案 after_create 回调用于新对象,after_update
我有一个模型,用于存储零售店的详细信息。 在 Outlet 模型中,我有一个前置过滤器 after_save :is_outlet_verified def is_outlet_verified
我试图通过 mixin 注入(inject) after_save 回调,但我的 rspec 测试告诉我,当调用 create 方法时,该回调被调用两次。为什么该方法被调用两次? 以下 rspec 测
有这个: class User u = User.create!(:name => "Wadus Name") Actual object still not saved => # 1.9.3p2
我正在编写一个预订系统,它使用 ice_cube 处理定期预订。 gem 。一个 Booking has_many BookingItem s,重复规则中的每次出现一个,这些是在由 Booking 调
如果我执行以下操作: @user.name = "John" @user.url = "www.john.com" @user.save 如果我使用after_save @user.url =
class Pledge true, :numericality => {:greater_than => 0} validates :divisor, :presence => true, :
我有两个模型,User 和 TrainingSession: class User = 1 points = count / 6 end @user.update_attribute(:poi
我在模型观察器中设置了 after_save 回调,仅当模型的 published 属性从 false 更改为 true 时才发送通知。由于诸如 changed? 之类的方法仅在保存模型之前有用,因此
当一个对象保存在rails中时,它在DB中的ID被分配给它。但它实际上并没有保存在数据库中。在控制台上,除了 INSERT 查询(在 after_save 之后执行)之外,我没有看到任何查询被触发。
(轨道上的 ruby ) 我有一个注册表单,可以将表单中的数据保存到一个表和另一个表中。我使用 Hook “after_save :process_field_to_another_table”和“a
我有一个 Rfq contoller 我正在创建新的或更新现有的 Rfq,当我创建或更新对象被保存时,我想要的是因为我有很多引号参数我想用参数中的引号更新 line_items 表保存 Rfq 后在
我有一个(我认为)相对简单的 has_many :through 与连接表的关系: class User :user_following_thing_relationships end class
我在模型上有一个 after_save 回调,我正在调用 previous_changes 以查看属性 (is_complete) 是否已更改。即使属性发生变化,previous_changes 也会
所以我为这些问题看起来多么愚蠢而道歉。我是 Rails 的新手,作为第一个任务,我还引入了 Neo4J,因为如果我发展这个项目,它似乎是最合适的。 我将解释操作流程,然后展示一些示例代码。我现在正在尝
我有一个带有状态列的 ActiveRecord 模型。当模型与状态更改一起保存时,我需要将状态更改和谁负责更改写入历史文件。我在想 after_save 回调会很好用,但我不能使用 status_ch
after_save在保存记录时调用(但在提交之前)。同时 after_create在提交数据库事务之后调用。 除了这篇文章http://www.justinweiss.com/articles/a-
我是一名优秀的程序员,十分优秀!