메일러 기능을 포함하지 않는 페이지에서 radiant mailer extensionSystemStackError in SiteController#show_page
을 실행하는 동안 문제가 발생했습니다. - 그런 정의가없는레일 process_without 메서드
Module MailerProcess
include RecaptchaMailer
def self.included(base)
base.class_eval {
alias_method_chain :process, :mailer
attr_accessor :last_mail
}
end
def process_with_mailer(request, response)
# If configured to do so, receive and process the mailer POST
if Radiant::Config['mailer.post_to_page?'] && ...
# here process_mail from RecaptchaMailer called - works fine
end
process_without_mailer(request, response)
end
end
그리고 여기 process_without_mailer
이 날 완전히 혼란 것입니다 : 나는 문제를 casus 모듈이 있다는 것을 것을 발견했습니다. 이 방법은 실제로 로그에서 "SHOW TABLES"를 많이 발생시키고 마지막으로 예외를 발생시킵니다. 이 메소드는 레일스 부분이 더 많거나 적음을 의심합니다. 동일한 호출이 있기 때문입니다. actionpack-2.3.18/lib/action_controller/filters.rb
(process_without_filters
), rails-4.0.0/guides/source/active_support_core_extensions.md
(process_without_stringified_params
) - 이러한 방법에도 정의가 없습니다.
그래서, 두 가지 질문이 있습니다 :
process_with_mailer
이
어떤 페이지로드 중에 호출되는 이유
- ?
- 뒤에 오는 마법은 무엇입니까
process_without_mailer
?
는 UPD :
확인 방법 process_with_mailer
을 주석하는 것은 시작하는 동안 오류가 있습니다 :
/home/sab/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-2.3.18/lib/active_support/core_ext/module/aliasing.rb:34:in `alias_method': undefined method `process_with_mailer' for class `Page' (NameError)
from /home/sab/.rvm/gems/ruby-1.9.3-p448/gems/activesupport-2.3.18/lib/active_support/core_ext/module/aliasing.rb:34:in `alias_method_chain'
from /home/sab/_work/radiant-cms/vendor/extensions/mailer/lib/mailer_process.rb:6:in `block in included'
from /home/sab/_work/radiant-cms/vendor/extensions/mailer/lib/mailer_process.rb:5:in `class_eval'
하는 것은 그래서 아마 alias_method_chain
방법 모든 페이지로드를 호출 원인,하지만 기계는 나에게 명확하지 않다. ActiveSuppor 의사를 찾았습니다.
UPD2 글쎄
- 이
process_with_mailer
및alias_method_chain
을 주석 Ruby on Rails: alias_method_chain, what exactly does it do? - 독서와 함께 끝났다. 해당 구성에서 전자 메일을 전송하므로 허용됩니다. 나는 아직도 작가의 일반적인 생각이 무엇인지 알고 싶다.
모양을 보면, 'process_with_mailer'는 무한 재귀 루프에 걸려서 스택을 날려 버리게됩니다. 재귀 호출을 주석 처리하고 오류가 계속 표시 될 수 있습니까? – CuriousMind
@Gaurish'process_without_mailer'에 주석 처리 : 'ERROR TypeError : Array를 문자열로 변환 할 수 없습니다. .../ruby-1.9.3-p448/gems/rack-1.1.6/lib/rack/handler/webrick. rb : 61 :'블록 서비스 중 ' .../ruby-1.9.3-p448/gems/actionpack-2.3.18/lib/action_controller/response.rb : 155 :'each'에 .../ruby-1.9.3-p448/gems/actionpack-2.3.18/lib/action_controller/response.rb : 155 :'each '에 각각 .../ruby-1.9.3-p448/gems/actionpack-2.3.18 /lib/action_controller/string_coercion.rb:16:in'method_missing ' .../ruby-1.9.3-p448/gems/actionpack-2.3.18/lib/action_controller/reloader.rb : 22 :'method_missing'에 있습니다. ' – sab