В действии NotesController #show перенаправьте или покажите ошибку «Отказано в разрешении», если user_id в заметке не == идентификатор пользователя, вошедшего в систему.
Другое решение - поместить этот код в before_filterв NotesController, поскольку такая же проверка выполняется для методов #edit и #delete.
Редактирование: Объединение всех предложений (извините, если это сбивает с толку):
Редактирование 2: ИспользованиеОтвет ассоциации Veeti, который я всегда забываю, мы можем добавить current_user.notes.find () к смеси.Как он сказал, ваш current_user должен вернуть объект User, а вам понадобится has_many: notes в вашей модели User.
class NotesController < ApplicationController
before_filter :check_ownership, :except => [:new, :create, :index]
#.. new, create, index, show, edit, delete actions
private
def check_ownership
redirect_to :back unless current_user.notes.find(params[:id])
end
end