Ruby on rails 如何添加用户数据限制或批准
我正在寻找最好的方法来建立一个我正在从事的网络项目 我的网站要求用户和非用户输入他们所在城镇的当地位置信息。我不想将此限制为仅限用户使用。我有一张表格来收集他们所在的州和城市的信息,以及他们所在位置的详细信息。我想在将此信息发布到网站之前批准此信息 处理信息的最佳方式是什么?Rails是否有一个很好的解决方案让我在发布此信息之前批准它Ruby on rails 如何添加用户数据限制或批准,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在寻找最好的方法来建立一个我正在从事的网络项目 我的网站要求用户和非用户输入他们所在城镇的当地位置信息。我不想将此限制为仅限用户使用。我有一张表格来收集他们所在的州和城市的信息,以及他们所在位置的详细信息。我想在将此信息发布到网站之前批准此信息 处理信息的最佳方式是什么?Rails是否有一个很好的解决方案让我在发布此信息之前批准它 在显示在列表页面之前,我需要一种方法来限制数据/列表。您可以在模型中使用标志属性,最好是状态来指示它是否被批准。默认情况下,当用户添加数据时,它应该为false。
在显示在列表页面之前,我需要一种方法来限制数据/列表。您可以在模型中使用标志属性,最好是状态来指示它是否被批准。默认情况下,当用户添加数据时,它应该为false。您可以手动将其更新为true以使该数据生效 假设你正在添加一个列表,它不会出现在你的列表页面中,因为默认情况下它是未经批准的。你应该这样写你的列表控制器
@listing = Listing.where("status is not false")
您的控制器创建方法应该具有以下代码,以确保在添加列表时,默认情况下不会批准每个列表
def create
listing.status = false
listing.save
end
或者,您可以使用迁移并将默认值添加到status as fault。
您可以在自己的Approval controller或使用管理面板对其进行审核和更改。
.这是一个相当普遍的问题,涉及的不仅仅是简单的Rails操作。这还取决于您所说的“批准此信息”是什么意思。作为管理员,您是否只想确保它是有效的信息(例如,用户没有在电话号码字段中键入一组随机字符),或者您是否需要实际确保信息本身是可接受的(例如,用户没有在文本框中输入一组亵渎) 对于第一部分,您可以使用来确保数据本身是可靠的(比如验证电话号码是否由数字组成) 对于第二部分,您需要跟踪信息是否应显示在您的站点上。我不知道您设置了什么数据模型,但假设用户提交的全部内容都称为
审阅
要跟踪是否应显示此审阅,您需要将approved
属性添加到review
模型。你可以通过一个。创建新审阅时,默认情况下,approved
应为false
。准备好显示此新评论后,可以将approved
设置为true
您可以通过一些控制器操作来完成所有这些。我假设您的个人用户帐户上有一个admin
标志,这样您就可以批准评论了。如果是这样,您可以设置如下控制器:
class ReviewController < ActionController::Base
def index
if current_user.admin
# Allow yourself to view all Reviews, presumably with an `Approve` button
@reviews = Review.all
else
# Only allow standard users to see already-approved reviews
@reviews = Review.where(approved: true)
end
# render reviews however you need to
end
def update
@review = Review.find(params[:id])
if params[:approved] && current_user.admin
# You've clicked an approve button, and you are an admin
@review.update_attribute(:approved, true)
end
# respond to the request here
# Note, there are definitely cleaner ways to do this, but I wanted to
# demonstrate where you could set the approved flag
end
end
class ReviewController
谢谢!如果我在跟踪您,我会将用户提交的内容添加到数据库中,但要确保它们都设置为false。我制作所有设置为true的列表。然后我可以使用RailsAdmin gem来查看提交的内容。谢谢!我会查看RailsAdmin并从那里开始调整我的位置表。我相信,完成了。我对这一切都不熟悉。感谢您的意见!谢谢我所说的“批准”主要是为了确保信息与网站相关,确保它不是亵渎、机器人创建的,或者可能是恶意的。你的代码有助于树立榜样。老实说,在我还在学习的时候,我想自己用一种简单的方式来做这件事。你给我看的似乎是直截了当和基本的。谢谢,没问题!我以前使用过各种Admin
类型的gems,但如果您正在学习,我绝对建议您从头开始编写,直到它成为第二天性。至于我个人用户上的Admin标志,我有一个名为role的子表,它在Admin下有一个布尔值。我相信这应该行得通,但是把它放在用户表上会更好吗?这取决于你认为你的应用程序会去哪里。如果将有许多不同的用户角色,并且这些不同的用户角色具有实质上不同的行为,那么拥有一个role
表是一个很好的计划。但是,如果您只有两个角色(管理员或标准用户),那么将该标志移动到user
表本身可能是更好的选择。