Создание приложения Rails3 с Shopify API.Где разместить фильтр сеанса? - PullRequest
1 голос
/ 11 сентября 2011

Я работаю над приложением Rails, которое использует API-интерфейс Shopify через Shopify_app Gem.Короче говоря, чтобы сделать вызовы API-интерфейсу Shopify, в контроллере вызывающего класса должен появиться следующий код:

 around_filter :shopify_session, :except => 'welcome'

  def welcome
    current_host = "#{request.host}#{':' + request.port.to_s if request.port != 80}"
    @callback_url = "http://#{current_host}/login/finalize"
  end

Теперь, поскольку в моем приложении несколько контроллеров, вряд лиуместно разместить вышеуказанный код в каждом.Я пытался удалить код с каждого контроллера и поместить его исключительно в контроллер приложения, но это не сработало.Будем весьма благодарны за любые указания относительно того, почему я могу испытывать эти проблемы.В качестве бонуса, если бы вы могли рассказать мне, как заставить мои тесты контроллеров в RSpec работать, не комментируя приведенный выше код в контроллерах, я был бы особенно благодарен.

Спасибо за ваше время

1 Ответ

1 голос
/ 11 сентября 2011

Для вас имеет смысл определить фильтр округления в каждом контроллере, так как вы определяете, к каким методам этого контроллера применять фильтр. Контроллер приложений ничего не знает о классах, находящихся ниже, поэтому нет смысла помещать в него определения.

Я рекомендую настроить FakeWeb или что-то подобное, чтобы подделать любые внешние вызовы, сделанные API с помощью тестирования. Чтобы метод shopify_session не перенаправлял вас на экран входа в систему, не забудьте установить для сеанса [: shopify] экземпляр ShopifyAPI :: Session в настройках теста.

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