#ЧеКак
🤔 Библиотека Pundit
Когда дело доходит до управления доступом в приложениях на Ruby on Rails, библиотека Pundit становится одним из самых популярных и удобных инструментов. Pundit предлагает простой и понятный способ реализации авторизации, что делает его идеальным выбором для разработчиков, стремящихся к чистому и поддерживаемому коду.
🚩 Основные особенности
🟠 Простота использования
Pundit следует принципу "конвенция над конфигурацией", что позволяет быстро начать работу без необходимости в сложной настройке.
🟠 Ясная структура
Библиотека использует классы политик (policy classes) для определения правил доступа, что делает код более организованным и легким для понимания.
🟠 Легкость интеграции
Pundit легко интегрируется с существующими приложениями на Rails, позволяя вам добавлять авторизацию без значительных изменений в архитектуре приложения.
🟠 Поддержка различных уровней доступа
Вы можете определять различные правила доступа для разных действий (например, просмотр, создание, редактирование и удаление), что дает гибкость в управлении правами пользователей.
Пример
Для начала работы с Pundit нужно добавить его в ваш Gemfile:
После установки вы можете создать политику для модели, например,
Здесь мы определяем, что обновить пост может только его автор или администратор. В контроллере вы можете использовать политику следующим образом:
👉 Новости 👉 Платформа
Когда дело доходит до управления доступом в приложениях на Ruby on Rails, библиотека Pundit становится одним из самых популярных и удобных инструментов. Pundit предлагает простой и понятный способ реализации авторизации, что делает его идеальным выбором для разработчиков, стремящихся к чистому и поддерживаемому коду.
Pundit следует принципу "конвенция над конфигурацией", что позволяет быстро начать работу без необходимости в сложной настройке.
Библиотека использует классы политик (policy classes) для определения правил доступа, что делает код более организованным и легким для понимания.
Pundit легко интегрируется с существующими приложениями на Rails, позволяя вам добавлять авторизацию без значительных изменений в архитектуре приложения.
Вы можете определять различные правила доступа для разных действий (например, просмотр, создание, редактирование и удаление), что дает гибкость в управлении правами пользователей.
Пример
Для начала работы с Pundit нужно добавить его в ваш Gemfile:
gem 'pundit'
После установки вы можете создать политику для модели, например,
Post
:class PostPolicy < ApplicationPolicy
def update?
user.present? && (record.user == user || user.admin?)
end
end
Здесь мы определяем, что обновить пост может только его автор или администратор. В контроллере вы можете использовать политику следующим образом:
def update
@post = Post.find(params[:id])
authorize @post
if @post.update(post_params)
redirect_to @post, notice: 'Post was successfully updated.'
else
render :edit
end
end
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЧеКак
🤔 Какова роль подкаталогов app/controllers и app/helpers?
🟠 Приложение/контроллеры. Контроллер обрабатывает веб-запрос пользователя. Rails ищет классы контроллеров в подкаталоге контроллера.
🟠 Приложение/помощники: любые вспомогательные классы, необходимые для поддержки классов представления, модели и контроллера, хранятся в подкаталоге вспомогательного устройства.
👉 Новости 👉 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
#ЧеКак
🤔 Упомяните, каково соглашение об именах в Rails?
🟠 Переменные: При объявлении переменных все буквы пишутся строчными буквами, а слова разделяются подчеркиванием.
🟠 Класс и модуль: Модули и классы используют MixedCase и не имеют подчеркивания; каждое слово начинается с заглавной буквы
🟠 Таблица базы данных: Имя таблицы базы данных должно состоять из строчных букв и подчеркивания между словами, а все имена таблиц должны быть в форме множественного числа, например bill_items.
🟠 Модель: Он представлен непрерывным MixedCase и всегда имеет единственное число с именем таблицы.
🟠 Контроллер: Имена классов контроллеров представлены во множественном числе, так что OrdersController будет контроллером таблицы заказов.
👉 Новости 👉 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Anonymous Quiz
0%
some = 0
0%
some = ""
80%
some = nil
0%
some
20%
Все варианты
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
0%
upcase()
8%
dcase()
8%
down()
50%
lowercase()
33%
downcase()
#Вакансии
🤔 Чем разница между строкой и символом?
Они оба действуют одинаково, только их поведение противоположно друг другу. Разница заключается в object_id, памяти и настройке процесса, когда они используются вместе. Символ принадлежит к категории неизменяемых объектов, тогда как строки считаются изменяемыми объектами.
👉 Новости 👉 Платформа
Они оба действуют одинаково, только их поведение противоположно друг другу. Разница заключается в object_id, памяти и настройке процесса, когда они используются вместе. Символ принадлежит к категории неизменяемых объектов, тогда как строки считаются изменяемыми объектами.
Please open Telegram to view this post
VIEW IN TELEGRAM
Anonymous Quiz
13%
x = / 3
69%
x /= 3
19%
x/3
0%
Нет сокращенной формы
#ЧеКак
🤔 Что такое модуль? Какие есть варианты подключения модулей в класс?
Модуль - это контейнер для методов и констант, который нельзя инстанцировать как
объект. В классы его можно подключить через include (включает методы как методы
экземпляра), extend (добавляет методы как методы класса) или prepend
(переопределяет методы класса).
👉 Новости 👉 Платформа
Модуль - это контейнер для методов и констант, который нельзя инстанцировать как
объект. В классы его можно подключить через include (включает методы как методы
экземпляра), extend (добавляет методы как методы класса) или prepend
(переопределяет методы класса).
Please open Telegram to view this post
VIEW IN TELEGRAM
#полезное
😊 Ruby сквозь года
Я думаю, мы должны знать историю языка, который завоевал наше сердце. В статье ниже как раз описывается вся история Ruby от 1-ой до 8-ой версии.
Читать статью
👉 Новости 👉 Платформа
Я думаю, мы должны знать историю языка, который завоевал наше сердце. В статье ниже как раз описывается вся история Ruby от 1-ой до 8-ой версии.
Читать статью
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Rails сквозь года: Ключевые изменения от версии 1 к версии 8
Ruby On Rails был краеугольным камнем в веб-разработке с момента своего основания, позволяя разработчикам создавать масштабируемые и поддерживаемые веб-приложения. С эволюцией Rails каждая версия...
❤3👍2
#Собес
🤔 Что такое геттеры и сеттеры в Ruby?
Геттеры используются для получения значений переменных объекта, а сеттеры - для их изменения. Их можно определить вручную, но в Ruby есть специальные методы
👉 Новости 👉 Платформа
Геттеры используются для получения значений переменных объекта, а сеттеры - для их изменения. Их можно определить вручную, но в Ruby есть специальные методы
attr_reader
, attr_write
r и attr_accessor
, которые упрощают создание геттеров и сеттеров.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
#новости
😊 Ruby на российском рынке в 2024
2024 год стал насыщенным на события для российского рынка, связанных с использованием Ruby.
Кухня на районе
Этим летом сервис доставки еды «Кухня на районе» стал настоящим центром новостей. После того как более 400 клиентов отравились ботулизмом, компания была вынуждена приостановить свою работу. Основатели даже ушли из учредителей, и теперь «Кухня на районе» пытается найти новый путь.
Интересно, что Сбер активно искал покупателя на этот проект. Учитывая, что Сбер активно развивает свою экосистему, где уже используется Ruby, возможно, это не просто совпадение.
РокетБанк
Вторая крутая новость — Совкомбанк купил финтех-платформу «Рокетбанк». Помните, как пару лет назад этот банк закрылся, но теперь он снова в игре!
Совкомбанк решил дать ему новую жизнь.
Раньше «Рокетбанк» работал на Ruby on Rails, так что надеюсь, что все эти старые наработки не пропадут даром и будут использованы в новой версии.
Бери заряд! в экосистеме «Яндекса»
Важное событие произошло и в секторе аренды устройств. «Яндекс» приобрёл сервис аренды пауэрбанков «Бери заряд!», который также использует Ruby on Rails. В I квартале 2025 года проект будет интегрирован в приложение «Яндекс Go».
2024 год стал насыщенным на события для российского рынка, связанных с использованием Ruby.
Кухня на районе
Этим летом сервис доставки еды «Кухня на районе» стал настоящим центром новостей. После того как более 400 клиентов отравились ботулизмом, компания была вынуждена приостановить свою работу. Основатели даже ушли из учредителей, и теперь «Кухня на районе» пытается найти новый путь.
Интересно, что Сбер активно искал покупателя на этот проект. Учитывая, что Сбер активно развивает свою экосистему, где уже используется Ruby, возможно, это не просто совпадение.
РокетБанк
Вторая крутая новость — Совкомбанк купил финтех-платформу «Рокетбанк». Помните, как пару лет назад этот банк закрылся, но теперь он снова в игре!
Совкомбанк решил дать ему новую жизнь.
Раньше «Рокетбанк» работал на Ruby on Rails, так что надеюсь, что все эти старые наработки не пропадут даром и будут использованы в новой версии.
Бери заряд! в экосистеме «Яндекса»
Важное событие произошло и в секторе аренды устройств. «Яндекс» приобрёл сервис аренды пауэрбанков «Бери заряд!», который также использует Ruby on Rails. В I квартале 2025 года проект будет интегрирован в приложение «Яндекс Go».
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
#Собес
🤔 Что происходит при вызове метода в Ruby?
Когда вызывается метод в Ruby, объекту отправляется сообщение с именем метода. Если метод существует у обьекта, он будет выполнен. Такой подход позволяет вызывать методы динамически с помощью
👉 Новости 👉 Платформа
Когда вызывается метод в Ruby, объекту отправляется сообщение с именем метода. Если метод существует у обьекта, он будет выполнен. Такой подход позволяет вызывать методы динамически с помощью
send
или public_send
.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Anonymous Quiz
0%
create file
33%
make file
39%
new file
28%
touch
❤1
#Собес
🤔 Какие типы переменных есть в Ruby?
B Ruby есть четыре типа переменных:
🟠 Локальные (
🟠 Переменные экземпляра (
обьекту.
🟠 Переменные класса (
класса.
🟠 Глобальные (
👉 Новости 👉 Платформа
B Ruby есть четыре типа переменных:
local_variable
) - видны только внутри блока, метода или класса.@instance_variable
) - принадлежат конкретномуобьекту.
@@class_variable
) - делятся между всеми экземплярамикласса.
$global_variable
) - доступны из любого места программы.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Anonymous Quiz
11%
to_str
47%
to_i
26%
to_int
16%
to_s
👍1