Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql Rails伪删除一行_Mysql_Ruby On Rails_Ruby_Activerecord - Fatal编程技术网

Mysql Rails伪删除一行

Mysql Rails伪删除一行,mysql,ruby-on-rails,ruby,activerecord,Mysql,Ruby On Rails,Ruby,Activerecord,我正在寻找一种使用Rails从表中伪删除行的方法。这些行不应在任何正常的“查找搜索”中显示,除非我想显示最近删除的项目。我现在使用活动表来管理这些任务,它存储最近在行上执行的类、id和方法 有没有一种方法可以在不从表中实际删除行的情况下禁用该行。有点像iTunes在歌曲旁边的复选框?您可以在表格中创建一个已删除的列。删除某些内容时,您只需更新table SET deleted=true,其中blah=true,而不是让delete函数发送delete FROM table WHERE blah=

我正在寻找一种使用Rails从表中伪删除行的方法。这些行不应在任何正常的“查找搜索”中显示,除非我想显示最近删除的项目。我现在使用活动表来管理这些任务,它存储最近在行上执行的类、id和方法


有没有一种方法可以在不从表中实际删除行的情况下禁用该行。有点像iTunes在歌曲旁边的复选框?

您可以在表格中创建一个已删除的列。删除某些内容时,您只需更新table SET deleted=true,其中blah=true,而不是让delete函数发送delete FROM table WHERE blah=true语句。然后,在查找某个内容时,如果要查找已删除的项目,请始终将条件设置为include=false或true。任何未删除的内容都将被返回,但您仍将保存有关已删除项目的信息。

您可以在表中创建已删除列。删除某些内容时,您只需更新table SET deleted=true,其中blah=true,而不是让delete函数发送delete FROM table WHERE blah=true语句。然后,在查找某个内容时,如果要查找已删除的项目,请始终将条件设置为include=false或true。任何未被删除的内容都将被返回,但您仍将保存有关已删除项目的信息。

您是否查看过这些信息。听起来应该能满足你的需要。

你看过了吗。听起来这应该可以满足您的需要。

您可以将数据复制到已删除的记录表中,但它看起来像是偏执行为或类似行为,也称为软删除

对于普通查询,是否可以添加包含“已删除为false”条件的数据库索引

什么样的查询是这些行在任何正常情况下都不应该出现的。查找。。你用的是哪一个


Stephan

您可以将数据复制到已删除的记录表中,但它看起来像是偏执狂或类似的行为,也称为软删除

对于普通查询,是否可以添加包含“已删除为false”条件的数据库索引

什么样的查询是这些行在任何正常情况下都不应该出现的。查找。。你用的是哪一个

Stephan

与上面删除的专栏相似,但是您可以通过使用视图来避免rails方面的麻烦

假设您有一个表,其中包含一个隐藏的列。然后,您可以使用创建视图\u table选择所有的\u列\u但\u隐藏在备份\u table中,其中hidden=false

您的模型基于视图,不需要执行任何特殊操作。您可以通过更新backing_table SET hidden=true WHERE条件来隐藏内容

类似于上面删除的列,但是您可以通过使用视图来避免rails方面的麻烦

假设您有一个表,其中包含一个隐藏的列。然后,您可以使用创建视图\u table选择所有的\u列\u但\u隐藏在备份\u table中,其中hidden=false


您的模型基于视图,不需要执行任何特殊操作。您可以通过更新backing_table SET hidden=true WHERE条件来隐藏内容

我考虑过这一点,但这将是一个真正的麻烦,肯定会造成一些混乱的activerecord语法。考虑到我在整个应用程序中查询了数百次活动行,只查询了一次删除行。您可以使用命名范围和Debug TySCAPE来保存重复。我考虑过,但这将是一个真正的麻烦,肯定会创建一些混乱的Active VordRD语法。考虑到我在整个应用程序中查询了数百次活动行,只查询了一次删除行。您可以通过使用命名范围和Debug TyScript保存重复。