Functional programming is different from object oriented programming and takes some time to understand.
In elixir, data is immutable and hence you can't simply modify data like in non functional programming languages and that leads to complexity when you don't think in terms of functional programming. And regarding the code you posted, I would suggest using maps, then you can access values as
arr[row][col]
and set values using the put_in macro as put_in arr[row][col], val
I would suggest using elixir + Phoenix framework. It should also be mentioned that given your RoR background, you will feel comfortable using Phoenix and elixir. Performance will not be an issue compared to RoR.