-
Notifications
You must be signed in to change notification settings - Fork 526
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Path Helpers Failing when email is sent before call (CCI) #880
Comments
Does that feature send out an email before this failure? We are seeing a similar issue and this seems to happen because an email is sent out first. This causes the view context to switch to the Mailer, but it does not appear to switch back to the controller. This means that the view context is now used on a controller context, leading to this error (because Mailers only have fully qualified URLs). |
@graaff we are also seeing an error when when using Draper after ActionMailer where Draper can no longer find methods defined in helpers. Did you end up with any fix or work-around? |
For anyone else running into this a workaround is to include the missing helper(s) in your ApplicationMailer so they're available to Draper, etc. even after ActionMailer switches the view context. |
This is still an issue. I found a cleaner solution that affects only tests: RSpec.configure do |config|
config.before do
Draper::ViewContext.clear!
end
end It's not really clear to me if this problem is sort of a natural consequence of how Draper is caching the view context, or if its actually just a bug/shortcoming that can be fixed. |
@taylorthurlow, thank you for your findings and the fix. I’ve dug a bit deeper into the code and found Draper having that piece of logic already: draper/lib/draper/test_case.rb Lines 6 to 9 in 4173a0f
It seems not to be running in this case for some reason, though. The first thing I’d assume may be the order Anyway, we need a deeper investigation to fix that properly. Meanwhile, anyone can easily incorporate the fix into their |
Unfortunately, it’s quite unlikely that I’ll do it on my own. At first, I was eager to develop Draper and bring it back to life, but I don’t see it viable for now. The reasons are:
That’s why I came to rewriting Draper from scratch on my own and splitting it into several libs:
They do virtually all the Draper does and more. |
I have a feature spec that calls
visit company.decorate.h.new_company_path
This works as expected on my local machine but fails in Circle CI with:
Is there a reason this would fail in Circle CI but not locally? This is the only spec out of about 150 that is failing, so I'm not inclined to think it's a general configuration issue.
For full context here is the whole spec. Is it because there isn't a view context yet, with nothing yet rendered? If so why does this work locally but not on CCI?
The text was updated successfully, but these errors were encountered: