在我的应用程序中,用户has_many :jobs
和作业belongs_to :user
。我正在使用偏执狂宝石软删除用户和工作。
假设我有一个用户,乔,他有一份工作“推动变化”。我可以使用Job.all
查看我的商家信息页面上的所有工作,但是一旦我删除了Joes的帐户,我就再也看不到使用Job.all
的工作了。
我尝试使用Job.with_deleted.all
并尝试取消关联belongs_to :user, -> { with_deleted }
。
生成的SQL语句:
SELECT "jobs".* FROM "jobs" INNER JOIN "users" ON "users"."id" = "jobs"."user_id" AND "users"."deleted_at" IS NULL WHERE "jobs"."deleted_at" IS NULL ORDER BY users.name ASC
答案 0 :(得分:0)
这似乎已经在有许多工作上设置library(dplyr)
edge_c_summary %>%
mutate(source = "edge_c") %>%
bind_rows(mutate(ridge_c_summary, source = "ridge_c")) %>%
bind_rows(mutate(valley_c_summary, source = "valley_c")) %>%
ggplot(aes(times, means) +
geom_line(aes(color = source, group = source)) +
geom_errorbar(aes(ymin = means - sd, ymax = means + sd, color = source))
,这是删除用户的唯一方法,将对has_many进行更改。你不希望他们被隐藏,然后只需删除依赖::从用户模型中删除有很多工作
答案 1 :(得分:0)
Paranoia gem为您的模型设置默认范围,其中不返回带有时间戳的deleted_at attr设置。 尝试解开你的模型,如
<div id="section1" class="carousel slide" data-ride="carousel" data-interval="1000">
<!-- Indicators -->
<ol class="carousel-indicators">
<li data-target="#section1" data-slide-to="0" class="active" ></li>
<li data-target="#section1" data-slide-to="1" ></li>
<li data-target="#section1" data-slide-to="2" ></li>
</ol>
<!-- Wrapper for slides -->
<div class="carousel-inner" role="listbox">
<div class="item active">
<img src="img1.jpg" alt="...">
<div class="carousel-caption">
<!-- <h3>Caption Text</h3> -->
</div>
</div>
<div class="item ">
<img src="img2.jpg" alt="...">
<div class="carousel-caption">
<!-- <h3>Caption Text</h3> -->
</div>
</div>
<div class="item ">
<img src="img3.jpg" alt="...">
<div class="carousel-caption">
<!--h3>Caption Text</h3-->
</div>
</div>
</div>
</div>
答案 2 :(得分:0)
我知道回答这个问题可能为时已晚,但是根据我的经验。在工作模型中添加include Mongoid::Paranoia
会将deleted_at
添加到关联中,而不是真正删除工作记录。另外,如果您要查询已删除的作业,请尝试使用Job.unscoped.all
,或者如果要从作业实例中获取已删除的User
,请尝试添加方法
def user
User.find(user_id)
end
将user_id
替换为映射到用户ID的实际键名。
希望有帮助! :)