如何添加用户数据限制或批准
如何添加用户数据限制或审批
在模型中使用一个标志属性,最好是状态(status)来指示是否已批准。默认情况下,当用户添加数据时,它应该是false。您可以手动将其更新为true,使该数据生效。
例如,假设您正在添加一个列表,它不会出现在您的列表页面上,因为默认情况下它是未批准的。您应该像这样编写您的列表控制器:
Listing.where("status is not false")
您的控制器创建方法应该包含以下代码,以确保每个列表在添加时默认不被批准:
def create listing.status = false listing.save end
或者您可以使用迁移并将默认值添加到状态(status)中。
您可以检查它并在自己的批准控制器中进行更改,或者使用一个管理面板 gem,例如 RailsAdmin。
谢谢!如果我理解正确,我将用户提交的数据添加到数据库中,但确保所有数据的状态都是false。将状态为true的列表设为发布状态。然后我可以使用RailsAdmin gem来审查提交的数据。
谢谢!我会查看RailsAdmin并从那里开始,并调整我的位置表。
完成了,我相信我已经完成了。对于这一切我都是新手。感谢您的建议!
如何添加用户数据限制或审批?
这是一个非常普遍的问题,不仅涉及简单的Rails操作,还取决于你对“批准这些信息”的理解。作为管理员,你是想确保信息是有效的(例如,用户没有在电话号码字段中输入一堆随机字符),还是需要确保信息本身是可接受的(例如,用户没有在文本框中输入一堆粗俗言论)?
对于第一部分,你可以使用Active Record Validations来确保数据本身是正确的(例如,验证电话号码是否由数字组成)。
对于第二部分,你需要跟踪是否要在网站上显示该信息。我不知道你设置了什么数据模型,但假设用户提交的全部内容称为“review”。
要跟踪是否应显示此评论,你需要在“Review”模型中添加一个“approved”属性。你可以通过Active Record Migration实现这一点。当创建一个新评论时,“approved”默认应为“false”。一旦你准备好显示这个新评论,你可以将“approved”设置为“true”。
你可以通过几个控制器操作来完成所有这些。假设你的个人用户帐户上有一个“admin”标志,以便你可以批准评论。如果是这样,你可以设置一个控制器,如下所示:
class ReviewController < ActionController::Base def index if current_user.admin # 允许自己查看所有评论,可能还有一个“批准”按钮 @reviews = Review.all else # 仅允许普通用户查看已批准的评论 @reviews = Review.where(approved: true) end # 根据需要渲染评论 end def update @review = Review.find(params[:id]) if params[:approved] && current_user.admin # 单击批准按钮,并且你是管理员 @review.update_attribute(:approved, true) end # 在此响应请求 # 注意,肯定有更简洁的方法来做这个,但我想演示你可以设置批准标志的地方 end end
谢谢!我的意思是要确保信息与网站相关,确保不含亵渎或机器人创建的内容,或者可能是恶意的。
你的代码帮助树立了一个示例。市面上有很多gems,老实说,虽然我还在学习,但我想以简单的方式自己做这个。你展示的内容看起来很简单和基础。谢谢。
没问题!我以前使用过各种管理型的gems,但如果你正在学习,我强烈推荐从头开始编写,直到它变得自然而然。
至于在我的个人用户上有一个管理员标志,我有一个称为“role”的子表,其中有一个布尔值代表管理员。我认为这应该可以工作,但在用户表上直接拥有这个标志会更好吗?
这取决于你对应用程序的发展方向。如果将有许多不同的用户角色,并且这些不同的用户角色具有明显不同的行为,那么拥有一个“role”表是一个很好的计划。然而,如果你只有两个角色(管理员或普通用户),那么将该标志移动到“user”表本身可能是一个更好的选择。