0

我是一名新的 Rails 开发人员,我有一个 Rails 应用程序,我允许用户在其中发布帖子,同时允许他们选择选中复选框。我希望能够手动查看用户在发布过程中检查的所有帖子。现在,所有内容都已成功发布,但我希望对所有选中的帖子都进行此审核。进行此审查的最简单和最简单的方法是什么?

这是后控制器现在的样子

def create
    @post = current_user.posts.build(params[:post])
    if @post.save
      flash[:success] = "Shared!"
      redirect_to root_path
    else
      @feed_items = []
      render 'static_pages/home'
    end
  end
4

2 回答 2

1

为此,您最好将“已审核”字段的数据类型保持为“布尔”(在迁移文件中)。

要在您的视图中放置复选框,请检查: http: //guides.rubyonrails.org/form_helpers.html#helpers-for-generating-form-elements

另外,请注意,如果您想验证布尔字段的存在(其中真实值为真和假),则不能使用:

validate :field_name, :presence => true 

这是由于 Object#blank? 处理布尔值。假的空白?# => true 在这种情况下,您可以使用:

validates :field_name, :allow_nil => true, :inclusion => {:in => [true, false]}

如果您将 false 作为默认值分配给新创建的帖子(并且您需要在触发验证之前执行此操作),则可以从上述验证语句中省略 ":allow_nil => true"。

于 2013-04-05T04:32:22.527 回答
0

我不是从 RoR 的角度谈论,而是在一般实施

在数据库中,添加一个名为“Reviewed”的字段。它包含一个“Y”或“N”。默认应为“Y”。

现在,在保存或更新帖子时,将复选框标记为 Y 或 N 到此字段和模型中,仅查询“已审核”=“Y”的帖子。

这样,如果用户不勾选,默认值为'Y',帖子就会显示,但如果用户勾选,则默认值为'N',你开发一个评论界面(我希望你已经做过),在审查后,您将其标记为“Y”。

这很简单。如果您需要添加更多关于谁审查它、何时审查等信息,您可以添加更多数据库字段来存储它。

更新

我从事 ColdFusion 技术,我们有受 RoR 启发的 CFWheels 框架。
根据经验,我建议您使用表单助手。

试试这个代码

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

有关更多详细信息,请阅读ruby​​ on rails 中的复选框标签复选框表单助手

于 2013-04-05T02:20:28.810 回答