Хотя eval может быть полезным инструментом для такого рода вещей, и люди из других областей могут использовать его так же часто, как и консервный нож, на самом деле использовать его небрежно. Eval подразумевает, что все может произойти, если вы не будете осторожны.
Более безопасный метод:
on_class = "Post"
on_class.constantize.send("method_name")
on_class.constantize.send("method_name", arg1)
Object # send будет вызывать любой метод, который вы хотите. Вы можете отправить либо Symbol, либо String, и если метод не является частным или защищенным, он должен работать.