Методы Рубин, заканчивающийся на '?' позволили изменить вещи?
Я шел через какой-то код в одном из наших Рор приложений в нашей компании. И я заметил, что иногда используется способ с вопросительным знаком, подобное следующий метод используется в одном из наших контроллеров.
# readonly checker
# @param url to redirect or nil
# if url set up, goes to url with note "not allowed because readonly"
# else @returns true / false
def readonly?(url = nil)
if current_user_can_access?(:readonly)
message = I18n.t(:auth_readonly)
if request.xhr?
response.status = 403
render json: { error: message }
else
redirect_to url, notice: message unless url.nil?
end
true
else
false
end
end
Мой вопрос, Является ли это приемлемым (и обычно), что также перенаправляет куда-то.
Я привык реализации методов вопросительный знак, что только возвращают значения, конвертируемых в логическое и не вносить изменения в модели, ДБ...

Если вы спрашиваете, если пользователь все еще находится после перехода, да, это все-таки дело. Вы просто добавить проверку подлинности состояние слушателя на страницах, где вы ожидаете, что пользователь должен пройти проверку подлинности, и обращаться к базе данных только после этого слушатель указывает, что пользователь присутствует.
Посмотрите другие вопросы по меткам ruby-on-rails ruby methods