Я создал очень простой блог, где пользователи могут создавать, редактировать и удалять сообщения, но я хочу добавить функциональность, где пользователи могут редактировать только в течение ограниченного времени (например, 3 дня). Мое понимание Ruby недостаточно сильное, чтобы знать, как это сделать, чтобы любая помощь была оценена.Как иметь блог, где пользователи могут редактировать сообщения только в течение ограниченного времени в Ruby on Rails
Это мои примечания (мое имя для сообщений) контроллер
class NotesController < ApplicationController
before_action :find_note, only: [:show, :edit, :update, :destroy]
def index
@notes = Note.where(user_id: current_user)
end
def show
end
def new
@note = current_user.notes.build
end
def create
@note = current_user.notes.build(note_params)
if @note.save
redirect_to @note
else
render 'new'
end
end
def edit
end
def update
if @note.update(note_params)
redirect_to @note
else
render 'edit'
end
end
def destroy
@note.destroy
redirect_to notes_path
end
private
def find_note
@note = Note.find(params[:id])
end
def note_params
params.require(:note).permit(:title, :content)
end
end
Я предполагаю, что где-то в методе редактирования мне нужно написать правило для ограничения возможности редактирования сообщения в только 3 дня, используя created_at функция как-то? Я просто не понимаю, как это сделать.
Любая помощь приветствуется.
Спасибо, это прекрасно :) – Andrew
На самом деле я просто проверил это более глубоко, у меня есть примечание, которое 1 день назад и, если я изменю 3.days до 3 ., он все равно позволит мне редактировать. Вы знаете, почему это может не работать для меня? – Andrew
Andrew Я могу предложить вам обернуть (@ note.created_at + 3.days) в brakets и проверить, но в любом случае наилучшей практикой является использование 'byebug' и посмотреть, как изменится значение –