Вы go шаг вперед:
comment_page = instance_options.dig(:param_page, :comment_page).presence || 1
comment_per = instance_options.dig(:param_page, :comment_per).presence || 0
Это будет go копаться в instance_options
дважды, но стоимость будет тривиальной. Если вам нужно беспокоиться о типах (скажем, значение :comment_page
может быть строкой), то вы можете добавить #to_i
вызовов:
comment_page = (instance_options.dig(:param_page, :comment_page).presence || 1).to_i
comment_per = (instance_options.dig(:param_page, :comment_per).presence || 0).to_i
или использовать reverse_merge
( так как это для установки значений по умолчанию):
param_page = instance_options[:param_page] || {}
param_page.reverse_merge(comment_page: 1, comment_per: 0)
# Then use param_page[:comment_page] and param_page[:comment_per] instead of two locals