to_xls
должно определенно быть представлением. Я бы попробовал /app/views/foos/show.xls.erb
, но если вам не нравится ERB для представлений XLS, попробуйте RbTemplateHandler , чтобы выполнить рендеринг в чистом Ruby.
from_xls
совсем другой зверь. Это, конечно, не принадлежит контроллеру. По логике он принадлежит модели, но я бы извлек его в миксин. Если вы используете только модель XLS для одной модели, тогда достаточно выполнить следующую настройку:
# app/models/foo.rb
class Foo
extend XLS2Foo
...
end
# lib/foo_from_xls
module XLS2Foo
def to_foo(xls)
...
end
end
Если вам нужно сделать это для нескольких моделей, вы можете попробовать DSL-генератор синтаксического анализатора в вашем каталоге lib
и объявить себя синтаксическим анализатором для каждой модели в классах моделей.