ruby-on-rails – Rails – 用于活动和非活动数据的软删除或存档
发布时间:2020-12-17 07:09:56 所属栏目:百科 来源:网络整理
导读:我已经阅读了很多关于软删除和存档的内容,并看到了所有的优点和缺点.我仍然对哪种方法最适合我的情况感到困惑.我将使用帖子和评论的概念来看看我是否可以更容易地解释它 Post - CommentsPost.allOutside RSS Feeds - Post - CommentsRSSFeed.posts (Return t
我已经阅读了很多关于软删除和存档的内容,并看到了所有的优点和缺点.我仍然对哪种方法最适合我的情况感到困惑.我将使用帖子和评论的概念来看看我是否可以更容易地解释它
Post -> Comments Post.all Outside RSS Feeds -> Post -> Comments RSSFeed.posts (Return the ones that are deleted or not) 帖子被“删除”但我需要帖子仍然可以通过RSS Feed来访问,但不是应用程序的管理员. 我听到很多令人头疼的软删除但认为它可能对我的应用程序最有意义,并觉得如果我使用Archive然后我将不得不运行多个查询 RSSFeed.posts || RSSFeed.archived_posts 不确定哪个会更有效,或者更多的是@ $$的痛苦.想法或例子?我知道这个例子听起来很愚蠢,但试图想出可以用来确定哪条路的多种情况. 解决方法
只需在数据库中添加另一列并将其命名为archivated.
使用link_to_if作为链接: <%= link_to_unless @post.archivated?,@post.name,post_path(@path) %> 更多铁路的好处: 应用程序/模型/ post.rb class Post < ActiveRecord::Base default_scope where( active: true ) def archivate unless self.archivated? self.archivated = true self.save end end def dectivate if self.archivated? self.archivated = false self.save end end end 应用程序/模型/ archive.rb class Archive < Post set_table_name :posts # make this model use the posts table default_scope where( active: false ) end 现在你可以做这样的事情: @post = Post.find(some_id) @post.archivate Archive.find(some_id) # should return the post you just archivated (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |