Это довольно общий вопрос и потребует не только простых действий Rails. Это также зависит от того, что вы подразумеваете под approve this information
. Вы как администратор просто хотите убедиться, что это действительная информация (например, пользователь не набирал кучу случайных символов в поле номера телефона), или вам действительно нужно убедиться, что сама информация приемлема (например, пользователь не вводили путаницу ненормативной лексики в текстовое поле)?
Для первой части вы можете использовать Active Record Validations, чтобы убедиться, что данные сами по себе являются звуковыми (например, проверка того, что номер телефона фактически состоит из цифр).
Для второй части вам необходимо будет отслеживать, должна ли информация отображаться на вашем сайте. Я не знаю, какую модель данных вы настроили, но скажем, что все, что подает пользователь, называется review
.
Чтобы отслеживать, должен ли отображаться этот обзор, вам необходимо добавить атрибут approved
к модели Review
. Вы можете сделать это через Active Record Migration. Когда создается новый обзор, 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
Спасибо! То, что я имею в виду, утверждая, прежде всего, чтобы убедиться, что информация имеет отношение к веб-сайту, убедитесь, что это не профанация или бот-созданная, или, возможно, злонамеренная. – Chelsea
Ваш код помогает установить пример. Там много жемчужин и честно, пока я все еще участвую, я хотел бы сделать это сам простым способом. То, что вы показываете мне, кажется прямым и базовым. Спасибо. – Chelsea
Без проблем! Раньше я использовал различные драгоценности типа 'Admin', но если вы учитесь, я определенно рекомендую писать все это с нуля, пока он не станет второй натурой. – JackCollins