- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很难让updated_at 列更新一个Casino 模型,该模型通过CasinoAmenity 拥有_many Amenities。赌场的 updated_at 列在添加便利设施时会正确更新,但在删除设施时不会。
这是我的(简化)模型:
赌场.rb
class Casino < ActiveRecord::Base
has_many :amenity_casino, :dependent => :destroy
has_many :amenities, :through => :amenity_casino
end
class AmenityCasino < ActiveRecord::Base
belongs_to :casino, :touch => true
belongs_to :amenity, :touch => true
end
class Amenity < ActiveRecord::Base
has_many :amenity_casinos, :dependent => :destroy
has_many :casinos, :through => :amenity_casinos
end
> Casino.find(5).updated_at
=> Wed, 30 Jan 2013 00:30:04 UTC +00:00
> Casino.find(5).amenities << Amenity.first
=> [#<Amenity id: 1, name: "asdf", weight: "", created_at: "2012-11-10 02:29:14", updated_at: "2013-01-30 01:29:14", description: "asdf">]
> Casino.find(5).amenities
=> [#<Amenity id: 1, name: "asdf", weight: "", created_at: "2012-11-10 02:29:14", updated_at: "2013-01-30 01:29:14", description: "asdf">]
> Casino.find(5).updated_at
=> Wed, 30 Jan 2013 01:29:14 UTC +00:00
> Casino.find(5).amenities = []
=> []
> Casino.find(5).amenities
=> []
> Casino.find(5).updated_at
=> Wed, 30 Jan 2013 01:29:14 UTC +00:00
最佳答案
首先,您在 amenity_casino
的末尾缺少一个“s”在您的 Casino
中的两个地方模型。
应该是这样的:
class Casino < ActiveRecord::Base
has_many :amenity_casinos, :dependent => :destroy
has_many :amenities, :through => :amenity_casinos
end
touch
方法,因此
updated_at
没有更新。
:after_remove
选择您的协会并传递
proc
其中调用
touch
在模型本身上:
has_many :amenity_casinos, :dependent => :destroy
has_many :amenities, :through => :amenity_casinos,\
:after_remove => proc { |a| a.touch }
Casino.find(5).updated_at
#=> Wed, 30 Jan 2013 03:21:29 UTC +00:00
Casino.find(5).amenities << Amenity.first
#=> [#<Amenity id: 1, name: nil, created_at: "2013-01-30 02:48:49", updated_at: "2013-01-30 03:25:23">]
Casino.find(5).amenities
#=> [#<Amenity id: 1, name: nil, created_at: "2013-01-30 02:48:49", updated_at: "2013-01-30 03:25:23">]
Casino.find(5).updated_at
#=> Wed, 30 Jan 2013 03:25:23 UTC +00:00
Casino.find(5).amenities = []
#=> []
Casino.find(5).updated_at
#=> Wed, 30 Jan 2013 03:27:33 UTC +00:00
Amenity
做同样的事情如果您想拥有
updated_at
的模型属性也更新了那个。
关于ruby-on-rails - 删除 has_many :through association doesn't change model's updated_at attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14595393/
我正在使用 laravel,我在产品和订单之间建立了多对多关系。有一个名为 order-product 的数据透视表,其中包含不时更新的附加信息。我想在更新数据透视表中的相应行时或例如添加新产品时更新
时间戳 默认情况下,Eloquent 期望 created_at 和updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理的数据列,在模型类中设置 $timestam
这听起来像是一个奇怪的请求,但是,我使用的是印象派,并使用了缓存的命中列。每次点击时我都会更新另一列,这是一个单独的计算。 我现在不想更新updated_at,有没有办法跳过它? if impress
有什么办法可以触摸导致 updated_at 的模型吗?字段更新到当前时间而不实际更改其他字段中的任何内容? 最佳答案 您可以使用 touch model.touch 或者 model.touch(:
我正在增加表中的一些总字段 $model->total_comments += 1; $model->save(); 但是,这会触发 updated_at 的更新日期。我想在这些情况下禁用它。我知道我
尝试上传此 .sql 文件,但不断收到错误: 1067 - Invalid default value for 'updated_at' 我读过很多帖子,人们都遇到了同样的问题。遗憾的是,升级 myS
我是 PHP/Laravel 新手。 我的模型扩展了默认的模型类。 class LobModel extends Model class AlarmActions extends LobModel 当
预期此代码结果为 null 但我得到的不是 null。 rDB.Where("user_id = ? AND updated_at > ?", userID, date).Find(&onedays)
我正在尝试将 updated_at 列更新为当前时间,每次用户登录时。 但我收到以下错误: InvalidArgumentException A four digit year could not b
我刚开始使用 Laravel,我收到以下错误: Unknown column 'updated_at' insert into gebruikers (naam, wachtwoord, update
我有日历模型。我不会插入大量数据。 $data = [ [ 'weekday' => 1, 'status' => 'active' ] .......
我有以下模型: class Announcement(models.Model): ... created_at = models.DateTimeField(auto_now_add
我正在制作我的第一个 Larevel (4) 应用程序,我想显示它的创建日期,但我遇到了这个问题:发现意外数据。发现意外数据。发现意外数据。数据丢失 当我尝试在我的 Blade 模板中执行此操作时 @
有一个典型的博客应用程序。每个用户都有_many 个帖子。每个帖子都有_many 标签。 我正在按 updated_at 对每个帖子进行排序,因此最近更新的帖子将显示在顶部。因此,例如,如果我更新帖子
我有一个基于内存的 session 表,其中包含以下内容: id sessnhash userid created_at updated_at 这个想法是当用户第一次登录时随机sessnhash创建并
我试图在将响应返回给 api 之前删除 created_at 和 updated_at 。我想从 中删除这些字段Place_Type 和地点 我怎样才能做到这一点? : 我试过: unset(plac
在 Laravel >=5.8 的最新版本中,我注意到当您创建新的模型记录时,表中的 updated_at 列会自动填充与 created_at 相同的值>。虽然在 Model::create() 上
我在 Laravel 中创建了一个带有标准日期时间列的表: Schema::create('lists', function (Blueprint $table) { $table->bigI
在 Laravel >=5.8 的最新版本中,我注意到当您创建新的模型记录时,表中的 updated_at 列会自动填充与 created_at 相同的值>。虽然在 Model::create() 上
我有一种情况需要使用 updated_at字段的所有模型创建同步功能。但是对于 User 模型,updated_at每次用户登录时都会修改字段。更糟糕的是,当设备使用用户凭据登录以同步数据时 upda
我是一名优秀的程序员,十分优秀!