Что я могу использовать на консоли, чтобы создать экземпляр ActionController? - PullRequest
1 голос
/ 14 марта 2011

У меня есть контроллер Rails 2.3.11, который я пытаюсь отладить. Это выглядит так:

class AppleController < ...
  # ...

  def create
    # ...
  end
end

Из журнала у меня есть некоторые параметры p:

p = { ... }

Что я могу написать на консоли, чтобы я мог получить экземпляр AppleController, который будет работать точно так же, как обычный экземпляр с этими параметрами, и который позволит мне вызвать .create?

ac = AppleController.new
# What goes here?
ac.create

(Обратите внимание, что просто присвоение ac.params = p недостаточно, поскольку нет объекта @request и т. Д.) Спасибо!

Ответы [ 2 ]

2 голосов
/ 15 марта 2011

Я думаю, что лучше всего это сделать с помощью ActionController :: Integration :: Session class

например. вызвать метод создания вашего AppleController

require 'action_controller/integration'
app = ActionController::Integration::Session.new;
app.post('/apples', params) # assuming '/apples' is the path to your AppleController
puts app.response.inspect
0 голосов
/ 14 марта 2011

Если я правильно читаю вопрос, вы можете просто позвонить Apple.create(:something => "bah") в консоли. Это должно имитировать то, что делает контроллер, когда получает почтовый запрос.

...