我有两个模特:
AssethistoriesAssethistory has_many belongs_to
不幸的是,在创建迁移时,没有向Assethistories添加任何foreign_key。在某些Assethistories记录中,Assethistories.asset_id有一个在Asset.id中不存在的值(可能有人在资产表中使用了delete而不是delete)。
大约有1000万项资产记录和2500万项资产记录。
使用此查询需要很长时间:
Assethistory.where("asset_id NOT IN (select id from assets)
class Post < ActiveRecord::Base
has_many :posts_tags
has_many :tags, through: :posts_tags
end
class PostsTag < ActiveRecord::Base
belongs_to :post
belongs_to :tag
end
class Tag < ActiveRecord::Base
has_many :posts_tags
has_many :posts, through: :posts_tags
end
当邮报被摧毁,我希望它的所有协会
我有以下关系: class Blog
belongs_to :owner
end
class Owner
has_one :blog, dependent: :destroy
end 错误的是,我用的是delete_all,而不是destroy_all。现在我在数据库中有一堆无效的引用。怎么解决这个问题呢?
我正在尝试解决列表构造部分的练习2
编写一个程序,从列表中删除特定项目的所有引用。它应该有三个论点。要使用的列表、要删除的项和结果列表。
下面是我想出的脚本:
delete_all([],Y,[]).
delete_all([X|T],Y,[X|Result]):-
X =\= Y, /* is X different than Y */
delete_all(T,Y,Result). /* if so then go find the rest */
delete_
我有数组tasks[]和表单中的项
<%= check_box_tag "tasks[]", task.id %>
我在控制台上看到他们
Processing by TasksController#destroy as HTML
Parameters: {"utf8"=>"?", "authenticity_token"=>"qo6JqGn0a1Yck1j67taz7kEu/ENBrwLg0xs4HbmAehNq7yMVB3llJWYgZvRNrWKPrZqYJtZIaS89EIBFIyDZTA
我有三个模特
class Account
has_many :link_requests, :through => :suppliers
end
class Supplier
has_many :link_requests, :dependent => :destroy
end
class LinkRequest
belongs_to :supplier
belongs_to :account
end
我有这样的供应商可以单独或批量输入通过excel。
当一个供应商被单独删除时,它将删除属于它的所有link_requests。但是我们有一种方法可以通过SQL查
我正在使用ActAsParanoid gem软删除一些记录,比方说孩子。父母不是偏执狂,我希望在父母被摧毁的时候,孩子们也会被真正地摧毁。
class Parent < ApplicationRecord
has_many :children, dependent: :destroy
end
class Child < ApplicationRecord
act_as_paranoid
belongs_to :parent
end
我现在看到,子对象正在被软删除,防止父对象因为子对象中的引用无效而被销毁。在父母被销毁后,如何才能让孩子真正被销毁呢?(我想知道是否可以
我在用代码点火器写一个删除函数。用户有两个选择。删除所有或删除一行。我不想重复相同的代码,我使用这样的函数。但是有一个错误‘Parse error:语法错误,意外的T_ELSE’。我怎样才能解决这个问题?重复密码的唯一方法?
public function _delete_port()
{
if ($_GET['delete_all']):
foreach ($_GET['delete_id'] as $delete_id):
else:
$delete_id = $_GET['dele
当我这样做时,我会注意到:
parent.children.delete_all(condition: {obj_id: obj.id})
然后我就做了:
parent.children
我仍然看到对我试图删除的对象的引用。
如果我这样做的话:
parent = Parent.where(id) #get the parent again from db
parent.children
我注意到那个孩子不见了。
如何确保当我删除一个子级时,它会将其从数据库中删除,并在一次操作中从数组中移除引用?
我想删除与我的应用程序的每个用户相关联的所有帖子,以满足确定的条件。特别是,我想删除所有超过30天的帖子,只有当一个用户有超过20个帖子。首先,我编写了以下代码:
users = User.all
users.each do |user|
if user.posts.any? && user.posts.count > 20
user.posts.delete_all('created_at < ?', 30.days.ago)
end
end
但是,查看集合的、方法delete_all并不意味着记录实际上已从数据库
我有一个元素的索引页,我正在尝试实现一个" delete“按钮,该按钮将向控制器发送一个delete请求,其中包含用户已选中的元素的列表。到目前为止,我已经完成了以下工作
#routes.rb
resources :messages, :except=>[:update,:edit] do
member do
delete :delete_all
end
end
#index.html.haml
=button_to "Delete", {:controller=>"messages", :action =>
这是完美的工作,现在我不确定发生了什么。
以下是错误:
ActiveRecord::RecordNotFound at /status_updates/92
Couldn't find User with id=92
和
ActiveRecord::RecordNotFound at /status_updates/delete_all
Couldn't find User with id=delete_all
发生的情况是,我的用户有很多状态更新。92这里应该指属于该用户的状态更新92。
我没有更改任何与此直接相关的代码,所以我怀疑这与我试图用我的咖啡脚本所做的更改有关。(我
在我们的rails 3.1.4应用程序中,系统日志中过多的条目将通过sys_log模型中的方法删除:
def self.trim_log(num_entry)
if SysLog.count > num_entry
SysLog.where("log_date < #{SysLog.all[num_entry -1].log_date}").delete_all
end
end
这里的num_entry是我们想要保留的日志条目。该条目之前的任何条目都将被删除。但是,delete_all会在rspec中导致以下错误:
我一直在用instance_doubles编写测试,以便在消息链中需要更多的粒度时充当消息链的角色。但是,我想知道我是不是在用艰难的方式去做事情。
下面是我想测试的方法:
def run_produceable_job
# Delete any jobs that exist, but haven't started, in favor of this new job
Delayed::Job.where(queue: 'produceable', locked_at: nil).delete_all
ProduceableJob.perform_late
现在,我的方法是一次列出每个表并调用.delete_all。这是重复的:
示例:
#app/db/seeds.rb
Blog.delete_all
Person.delete_all
Post.delete_all
User.delete_all
Author.delete_all
Book.delete_all
# ... on and on for all the tables
然后运行rake db:seed,它将清除上述表的所有记录。
是否有一条命令能完全满足我的要求:
删除所有表中的所有记录而不删除表本身?
或者,是否有一种方法来迭代我的所有表和每个表上的.delete
我使用的是rails 2.3.17,并设置了这个关系
class Item < ActiveRecord::Base
belongs_to :order
end
class Order < ActiveRecord::Base
has_many :items, :dependent => :delete_all
end
现在我需要对一个项进行验证,通过访问order对象属性,我如何做到这一点?
当我写
validate :checkXYZ
def checkXYZ
Rails.logger.debug self.order // I AM GETTING N
class Program < ActiveRecord::Base
belongs_to :channel
end
class ProgramSchedule < ActiveRecord::Base
belongs_to :program
end
Schema.rb
create_table "channels", :force => true do |t|
t.string "site"
t.string "name"
t.string "icon"
t