Rails: справка по рефакторингу контроллера - PullRequest
0 голосов
/ 23 сентября 2010

У меня есть контроллер, который я хочу реорганизовать.Этот контроллер в основном отображает отформатированный XML-документ.

Контроллер выполняет 4 основных действия.

  1. Он получает записи из БД
  2. Он читает статический XML-файл изrails_root / config
  3. Он перебирает записи БД и передает документ XML с использованием данных БД
  4. Он отображает документ XML в виде: текст

Мой вопрос:

Где находится правильное место для 2/3 в рамках Rails?Мне кажется, что они не должны быть в контроллере.

Я на Rails 2.3

Cheers

1 Ответ

1 голос
/ 23 сентября 2010

Я не знаю, что такое лучшая практика, но в моем случае я бы сделал 1, 2 и 3 в одном методе класса в модели.Я бы создал метод модели, который принимает имя базового XML-файла.

Так что я бы сделал что-то вроде этого ...Я все еще новичок в Rails)

# app/models/mymodel.rb
class MyModel < ActiveRecord::Base

  # ...

  def self.formatXml(xml_base)
    dataRecords = MyModel.find(:whatever) # step 1

    # open the XML and read it into a string, this is step 2
    # take the XML string, do the appropriate gsubs

    return my_xml_string;
  end
end

# app/controllers/mycontroller.rb
class MyController < ActionController::Base

  # ...

  def myAction
    formattedXml = MyModel.formatXml(whateverXmlFileName)

    render :text => formattedXml
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...