我有一个用户提交提交的网站,它们都显示在主页上。我想在每个提交中添加一个“隐藏”的按钮...如果用户点击此链接,他们将不再在网站上的任何位置看到提交。
目前我提交的索引操作只是:
def index
@submissions = Submission.order("created_at DESC")
end
我的计划是创建一个隐藏的模型:
rails g model hidden user_id:integer submission_id:integer
然后,当用户隐藏某些内容时,会创建一个隐藏的模型实例。然后我必须将我的控制器更新为:
def index
@submissions = Submission.order("created_at DESC").includes("hidden").where("hiddens.user_id IS NULL")
end
虽然这显然不起作用。
我有一个很好的数据库架构吗?我可以做的最有效的查询是什么,以确保我不显示隐藏的提交?
谢谢!
答案 0 :(得分:0)
你应该有3个表:
顺便说一下:要知道你应该从隐藏中实现逆转(如果有人犯了错误或改变了他的想法
答案 1 :(得分:0)
除非我遗漏了某些内容,否则我只需在“提交”模型中添加“隐藏”属性(布尔值)。
当用户点击“隐藏”链接时,您将该属性设置为true。
然后,您只需查找标志设置为false的提交:
Submission.where(:hidden => false)