Мне интересно, как реализовать некоторую логику разрешений в приложении Rails 2.3.8.
Например, пользователь может редактировать только те задачи, которые создал пользователь (он же «владеет»).
Должен ли я сделать что-то вроде этого:
user.can_edit_task(task)
или это:
task.can_be_edited_by?(user)
#Method needs to be passed in a user object (from controller). But then how
#can I access the current user in a "before_save" filter as below :
.
def User
before_save: check_permissions!
def check_permissions
#this way?
raise some_exception if task.can_be_edited_by?(user)
#or this way?
raise some_exception if self.can_edit_task?(task)
end
end
Какие-нибудь советы о том, как это сделать?