2016-10-10 5 views
0

Я пытаюсь переопределить ShopifyApp's new method, но не знаю, с чего начать. В принципе, мне нужно добавить еще одно поле, чтобы получить params:Метод переопределения метода ShopifyApp

/lib/shopify_app/sessions_concern/new.rb:

module ShopifyApp 
    module SessionsConcern 
    module New 
     def new 
     if params[:field] == "abc" 
     authenticate if params[:shop].present? 
     end # or else ... 
     end 
    end 
    end 
end 

Чтобы использовать этот модуль, я хотел бы сделать что-то вроде этого в контроллере :

ShopifyApp::SessionsConcern.prepend ShopifyApp::SessionsConcern::New 

Но там негде это использовать. Как это сделать правильно?

ответ

1

Переопределение переопределение. Ниже будет делать это для вас без каких-либо prepend Инг (имеющих, что вы загружаете код из lib каталога):

# lib/shopify_monkeypatching.rb 
module ShopifyApp 
    module SessionsConcern 
    def new 
     if params[:field] == "abc" 
     authenticate if params[:shop].present? 
     end # or else ... 
    end 
    end 
end 
+0

Спасибо. Я этого не делаю. В моем «новом» методе Ive помещает 'puts', но ничего не печатает на консоли, когда я перехожу на страницу'/login'. – Sylar

+0

@Sylar Вы уверены, что загружаете файлы с lib? просто из любопытства поместите весь код в, скажем, 'application_controller.rb' (после последнего' end') и посмотрите, появляется ли ваш 'raise' или что-то еще. –

+0

Да. Он печатается, когда в 'application_controller.rb' Но не тогда, когда в'/lib/new.rb' – Sylar