Wouldn't it be better to call the delay method from within the Newsletter model (or use handle_asynchronously)? That way the background functionality can be encapsulated into the Newsletter model and away from the controller. Better if we need to change it later...?
It seems to me that the big difference between serializing the object and just saving the ID is the state of the object. If you serialize it, then you are capturing the state when the delay method is called. If you just save the ID, then it will use the state of the object when the Newsletter is delivered.
I imagine that one or the other would be desirable, depending on the details of the application.
Ryan - This information is really important for developers. In a single day, we run tests or refresh the browser hundreds or thousands(!) of times. This leads to frustration and annoyance, but we don't notice it because we are used to it.
Guard and Guard LiveReload removes these repetitive and annoying actions. Making a tiny improvement in something that is repeated many times can seem like a small accomplishment, but I think it has a large effect.
Ryan - Thanks for this awesome RailsCast. I was trying to figure out RSpec and this made so much sense. Please create new RailsCasts about testing as your process changes and the tools improve.
Don't bother trying to run Rails on Windows. I spent a few days trying to get it to work, and it just doesn't. It takes 10 minutes for Rails to start, and many gems don't work.
If you are new to Rails, trying to use Windows makes it much harder. And Rails is hard enough.
I installed Ubuntu (which can run on the same machine) which works well for Rails. Or, find an old machine and run Ubuntu on it. I ended up using sharing the source folder and using Notepad++ on my regular dev machine which works well.
The only real improvement is to get a Mac and run TextMate. But this solution is 90% there.
It would be interesting to see some data on how much Tubolinks speeds up a real site.
Turbolinks Test seems to run locally, where the request time is about 20ms (on your computer). But in real use it is about 0.5 to 1 sec.
Hi Ryan,
Awesome info. Two questions:
Wouldn't it be better to call the delay method from within the Newsletter model (or use handle_asynchronously)? That way the background functionality can be encapsulated into the Newsletter model and away from the controller. Better if we need to change it later...?
It seems to me that the big difference between serializing the object and just saving the ID is the state of the object. If you serialize it, then you are capturing the state when the delay method is called. If you just save the ID, then it will use the state of the object when the Newsletter is delivered.
I imagine that one or the other would be desirable, depending on the details of the application.
Ryan - This information is really important for developers. In a single day, we run tests or refresh the browser hundreds or thousands(!) of times. This leads to frustration and annoyance, but we don't notice it because we are used to it.
Guard and Guard LiveReload removes these repetitive and annoying actions. Making a tiny improvement in something that is repeated many times can seem like a small accomplishment, but I think it has a large effect.
I had this same issue with factory_girl 3.5.0 and factory_girl_rails 3.5.0.
Ryan - Thanks for this awesome RailsCast. I was trying to figure out RSpec and this made so much sense. Please create new RailsCasts about testing as your process changes and the tools improve.
"config.active_record.whitelist_attributes = true" only works in Rails 3.1 or greater.
Don't bother trying to run Rails on Windows. I spent a few days trying to get it to work, and it just doesn't. It takes 10 minutes for Rails to start, and many gems don't work.
If you are new to Rails, trying to use Windows makes it much harder. And Rails is hard enough.
I installed Ubuntu (which can run on the same machine) which works well for Rails. Or, find an old machine and run Ubuntu on it. I ended up using sharing the source folder and using Notepad++ on my regular dev machine which works well.
The only real improvement is to get a Mac and run TextMate. But this solution is 90% there.
Awesome. Thank you!
Exactly what I was looking for, easy to understand, and fast to watch!