Если у меня есть метод в ruby, который принимает именованные аргументы...
def smoosh(first: nil, second: nil)
first + second
end
Какой самый простой способ передать хэш этому методу, если ключи совпадают:
params = { first: 'peanut', second: 'butter' }
smoosh(params)
Приведенное выше приводит к ошибке аргумента.
Обновлять:
Похоже, это может быть проблема с тем, как работают параметры Sinatra.
Когда я делаю:
get 'a_sinatra_route' do
hash = params.clone
hash.symbolize_keys!
smoosh(hash)
end
Это работает нормально. Это не работает, когда просто передаются параметры сами по себе. (хотя вы можете получить доступ к отдельным параметрам с помощью символьной клавиши params[:attr]
)