1

我在一个名为“帖子”的表中创建了一个名为“已审核”的新字段。每次有人在发布之前选中标记,我希望在显示之前对其进行审核以获得批准。

表中的“已审核”字段默认为 True。这是 schema.db

create_table "posts", :force => true do |t|
    t.text      "content"
    t.integer   "user_id"
    t.timestamp "created_at",                        :null => false
    t.timestamp "updated_at",                        :null => false
    t.boolean   "reviewed",        :default => true

这是我用于复选标记的视图中的代码

<%= label_tag(:post_reviewed, "Review this post") %>
<%= check_box_tag(:post_reviewed) %>

我希望每次选中此复选框时,将已审核字段设置为 False,以便在我对其进行审核并将其更新为 True 之前不会显示帖子。我怎样才能做到这一点?

4

2 回答 2

0

听起来你做的一切都是倒退的。如果你想沿着这条路线走,那么你应该将其更改为review并仅显示范围为where(review: false). 这样,如果用户希望在发布之前对帖子进行审核,那么他们会选中该复选框。

我不知道流程是什么,但如果必须审查所有帖子,为什么不将字段更改为reviewed_at日期时间。然后你只显示帖子where('reviewed_at IS NOT NULL')。这类似于deleted_ator published_at

我希望这有帮助。

于 2013-04-05T20:02:08.053 回答
0

在你看来,你可能有这样的事情:

<%= form_for :post do |f| %>
..
<% end %>

因此,只需尝试添加:

<%= f.check_box :reviewed %>

这应该会自动将其关联到所需的对象。

让我知道这是否适合你。

于 2013-04-05T20:03:26.813 回答