Ruby on Rails

Syndicate content
Updated: 46 min 31 sec ago

This week in Rails: Goodbye alias_method_chain, PostgreSQL typecasting and more

Fri, 03/27/2015 - 22:13

Hey all!

This is Prathamesh with this week's recap from Rails. Lets see which issues got fixed, which features got added. Ready, steady, go!

Featured This week's Rails contributors

This week 40 people contributed to Rails, 7 out of them are new. Do you also want to help? Check out the issue tracker and start making Rails better.

By the way, Xavier and Kasper added the permalink feature to the link of weekly contributors. So each weekly contributors link is forever to stay!

New Stuff Warning if the query fetches more than fixed number of records

Faced problem with queries fetching thousands of records and slowing everything? Now you will get a nice warning if the query fetches more number of records than configured value by using active_record.warn_on_records_fetched_greater_than config option.

Deprecated Deprecate alias_method_chain in favor of Module#prepend

Do you remember the old friend alias_method_chain? It had a good run. But now it will be deprecated in Rails 5 in favor of Module#prepend which was introduced in Ruby 2.0.

Improved Moving type casting for PostgreSQL out of Active Record

We just got two steps closer to moving type casting of various data types for PostgreSQL from Active Record to PostgreSQL adapter.

Friendlier access to request variants

With this patch, you can now check the current request's variant using request.variant.phone?, request.variant.tablet? and so on.

Fixed Pass name of the wrapped job class to Sidekiq for logging

If you were missing your job class in the Sidekiq logs and instead seeing some weird ActiveJob::JobWrapper, don't worry. Now you will get your job class back in the logs because ActiveJob will pass the wrapped class name back to Sidekiq.

Use actual table name while joining tables with has_many :through

Previously, while joining tables having has_many :through association, Active Record was not using the actual table name. It was generating wrong SQL and resulting into ActiveRecord::InvalidStatement error when used with calculation methods like #count. No need to worry, its fixed now!

Generate fixture file with singular name for singular tables

Previously if the table name was made singular using ActiveRecord::Base.pluaralize_table_names = false, name of the fixture file getting generated was still pluralized. No longer true! Get singular fixture file for singular table name now onwards.

Summer Opportunity Rails Girls Summer of Code

Checkout Rails Girls summer of code. You can submit your open source project to be included. Also you can help fund the campaign.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: 4.2.1, 4.1.10, new test runner and more!

Sat, 03/21/2015 - 00:22

Hello Everyone!

This is Vipul from Pune, where it's the Gudi-Padwa – or the Marathi New Year! Surrounded by garlands of sweets, lets head on to see, whats exciting this week.

P.S. Happy New Year!
P.P.S. Isn't it a New Year, everyday somewhere around the World?

Featured This week's Rails contributors

36 people contributed to make Rails awesome this week. If you haven't already, go ahead and watch Rails on GitHub to follow the discussions and find your first opprtunity to help out!

Rails 4.2.1 and 4.1.10 have been released!

After four release candidates, Rails 4.2.1 and 4.1.10 have finally been released! Thanks to all the contributors, for tons of fixes. Check out the full changes for 4.2.1 and 4.1.10 respectively.

New Stuff bin/rails test runner

A new test runner – bin/rails test – has landed on master. This is the successor to the rake-based test runner, and includes a few rspec-inspired features that are not part of minitest, like running by line number, rerun snippets, or logs displayed with unicorns filled with rainbow colors.

Added rake initializers

Need to see all those initializers scattered in you application? Worry no more. Just run rake initializers! Did I mention they are sorted?

Improved Use fullpath from Rack request

In Rack, request#fullpath returns the full path including the query string. This change uses fullpath from rack to avoid doing the same thing again in Rails. As a result, we also reduced some object allocations!

Fixed Materialize subqueries by adding DISTINCT to suport MySQL 5.7.6+

In MySQL 5.7.6+, the default value for optimizer_switch has changed to derived_merge=on, which causes some issue with the subqueries generated by Rails. This change fixes that by adding a DISTINCT to the subqueries.

Don't cast nil to string in postgres enums

Previously, nil values in PostgreSQL enums were casted to an empty string, which causes an error somewhere down the chain. But worry no more – this has now been fixed!

Summer Opportunities Google Summer of Code 2015

Are you a student, or know someone who would love to contribute to Rails? Our GSoC students application is now open! Check out our ideas page and join us on the mailing list for discussion.

Rails Girls Summer of Code

Rails Girls Summer of Code is also accepting application! You can also consider submiting your open-source project to be included.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1 and 4.1.10 have been released!

Thu, 03/19/2015 - 17:02

Hi everyone,

I am happy to announce that after four release candidates the final versions for Rails 4.2.1 and 4.1.10 have been released.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-256

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-256 hashes.

Here are the checksums for 4.1.10:

$ shasum -a 256 *4.1.10* 4d771e1042dc40148f7d13e9776bd3df4d7a1f116c7991b33b3ee5ade2771edf actionmailer-4.1.10.gem 383fbbc9db04529b15765d4b3236980b8f0c7e050128a467c2dece76b9dea29e actionpack-4.1.10.gem 4c72eca866e4a80b3a56760aeb859e26bbe221fc2c06c13bc8d3220284900330 actionview-4.1.10.gem 277d3fd1736ef1c4043592f482e6dea5cf4cc7d50c706b8be4971058a0df69cc activemodel-4.1.10.gem a4ab57ff0183a630b46c2fb1c8700cc139f45808b81e4650d6f235102e3d9ae6 activerecord-4.1.10.gem b495b8490a7f3a885c8d0868858cca5070be41a5001642d2eb83a2f2e794082a activesupport-4.1.10.gem 9f81f8b716ba76ea768b1c0ed4a185a3f7647b384fc297c26c2b51be82856fd3 rails-4.1.10.gem 55546f3c8e40c63cd7fd34b41dcf79eb302a38dd9b5a0383e60e9e747e7ecfe9 railties-4.1.10.gem

Here are the checksums for 4.2.1:

$ shasum -a 256 *4.2.1* f322b21623eb10eb302a21a803625bd57ce2b4ae24c2b5c14934a1359d63cf60 actionmailer-4.2.1.gem 71fecb2c58b81dc97d9c8fe065004010cccd2a7acd1bc8a459d42b55c4882ca2 actionpack-4.2.1.gem cf7dbb0b5d7a9ccb9be1870be97e5ec319e3ee0f5dc766e62c20fafe92c02bd5 actionview-4.2.1.gem 33cee3d50dbfacd105766be1f5885dfa614deb8a18c45a3a398f294457c8bd63 activejob-4.2.1.gem c55157de170de2c10ad2755c3fa434e7adcbe34af2526b4cf20b63feb5f8169b activemodel-4.2.1.gem 5febff6cb42c0fb94bb7708ad7df7f9ef6d365a27ef35c239674d651013c6cf2 activerecord-4.2.1.gem 36742443adbc7b4648b8674d119ac9dc446c3a555ce73a5a28b1fa029e8adad4 activesupport-4.2.1.gem 6b5f7d3a4a9eb2f181bab4a657315dbe08d0be218eae6017bef8a45dede211cb rails-4.2.1.gem a01ce5513806d712cca8ed60429493d18093eff680201e2e288602c1405e2e8b railties-4.2.1.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: RC releases, summer opportunities, turbo partials and more!

Sat, 03/14/2015 - 01:38

Hi all! o/

Here is Washington bringing you this week's news from our favorite framework. I hope you have made it to Friday the 13th without any major hiccups (I can't say the same about my internet provider). Either way, it's time to grab a drink, wind down and read on!

Featured 4.2.1.rc4 and 4.1.10.rc4 have been released

Give them a try on your projects to help make the next release as rock solid as possible. Many regressions have already been fixed and the final release should be out on March 17.

This week's Rails contributors

Couple more developers made their first commit into Rails this week. Take a moment to review the open issues, perhaps you will find something related to your day job, manage to fix it and have your first patch in Rails!

Summer Opportunities Google Summer of Code 2015

It's that time of the year again! As reported last week, we have been selected to participate in this year's Google Summer of Code program. This week, a few more exciting ideas have landed on our project page!

Applications will open next week, so please help spread the word!

Rails Girls Summer of Code

Speaking of summer, Rails Girls Summer of Code have just opened their applications today. If your company can afford it, consider becoming a sponsor!

New Stuff Turbolinks partial replacement

Mostly inspired by shopify/turbograft turbolinks now also supports partial replacement. Checkout the PR with docs as well for usage details.

Improved All Rails tests run in random order

As of this week Rails is giving another try on running tests in random order!!! You should probably try the same on all your projects for more reliable test results.

Fixed Rails 5 will need Ruby 2.2.1 or higher

Apparently Ruby 2.2.0 kwargs were still not that stable. A related issue caused a segfault error on ActionPack tests. So Rails 5 will require at least Ruby 2.2.1.

Fix rollback of frozen records

In case your project upgrade to Rails 4.2.0 raised any Can't modify frozen hash errors, checkout the latest release candidate. Chances are it will be fixed in Rails 4.2.1.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1.rc4 and 4.1.10.rc4 have been released!

Thu, 03/12/2015 - 21:41

Hi everyone,

I am happy to announce that Rails 4.2.1.rc4 and 4.1.10.rc4 have been released.

There were found some regressions in the last release candidates so, following release process we are releasing new release candidates.

If no regressions are found expect the final release this Tuesday, on March 17, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-256

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-256 hashes.

Here are the checksums for 4.1.10.rc4:

$ shasum -a 256 *4.1.10.rc4* 93f9bccd7920d41af334bd41f908d4d01d036ee661530b1d7006087e649bff4e actionmailer-4.1.10.rc4.gem d614facc52b04032bb6d5a126c157250a8538928fc44fa7d5939ffe1c20abe41 actionpack-4.1.10.rc4.gem 481251461e4b323007a1e3672b136c9f69925f00efc658b1ce5bf3c42ee77151 actionview-4.1.10.rc4.gem da5d4b4d640dbb8c114f3cb908883efe8873ada149860c2e54f88e53e8a231bc activemodel-4.1.10.rc4.gem e3abf43e7ab7e3d48f68dd043c01603d8017865595276203f909dc62c5503ad2 activerecord-4.1.10.rc4.gem fff8f641190860b4d22b2197f186a280574c7eaba3f1e57e0289d4114a3ef54c activesupport-4.1.10.rc4.gem 178baf8604ad8212cb76c6e36052031de4ed2fc03d9f63e470735c482e1164bd rails-4.1.10.rc4.gem 8fe2da153ab8a4954a001d8b646dc4c441f3b4e275e5c9f1de124d180aace94d railties-4.1.10.rc4.gem

Here are the checksums for 4.2.1.rc4:

$ shasum -a 256 *4.2.1.rc4* 5ab74d4319c41f4e0967d9b1f675cbcb98cae72f7ab5ef2c07c321092c66a708 actionmailer-4.2.1.rc4.gem 09933d78c9ed055d6fea82ee2557910cc0090efab3b7f4291cb2ca32bed6a907 actionpack-4.2.1.rc4.gem 7e56026b4822c1ab614b867e8304282464cb967150915eee52ae1bb891dc9306 actionview-4.2.1.rc4.gem f8a4e712fb0960979147d051e15693b9e2c49b0527f2b88d0af26c577a038843 activejob-4.2.1.rc4.gem 79a587ecf7b10a9e7b3ad3aa15a8d6a4f934f118f554372aa755100ccafd7b06 activemodel-4.2.1.rc4.gem 19815873691a559d5a8142110dd7a1ad9519c9e40e609adc2cbea62c514fcb49 activerecord-4.2.1.rc4.gem d62066327e4a7ecddfc8b6f43a996dbdc2de27eade12370ad16e5f58797ba9a8 activesupport-4.2.1.rc4.gem 67b780da327c1ff8efee6e6d41e1fd735e4fa8734bc34ae450bb587db34ff8ad rails-4.2.1.rc4.gem a0ab1d80c7cfaed985a9704b874df28fbc677fe2ab6041a2e2f77a6daeb4b299 railties-4.2.1.rc4.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: 50,000 commits, GSoC opportunity and more!

Sat, 03/07/2015 - 00:04

Ahoy there, rapscallion.

We're just about to depart for our weekly voyage on the sea of Rails news - beware the great snark!

Captain Kasper abides seas and appeases gods in hopes we make it ashore.

Come aboard and let's cast away.

Featured Rails crossed 50,000 commits

Our backs are all red from the pats given when news broke of Rails having more than 50,000 commits.
Adding to that chalupa 42 chummy contributors crossed the web and helped out.

10+ Years of Rails with DHH

Listen in as David takes a trip down memory lane. Hear why he made Rails and get some stories on the early days of Rails contributing. He also has some thoughts about money and open source. It might not be such a good thing to get paid to work on open source, after all.

Rails & Google Summer of Code 2015

Speaking of being paid for open source, Rails will be part of this year's GSoC. I was a student two years ago and wouldn't be here without it.

I highly recommend doing your research. Submit an honest proposal and you just might make it.

Seagulls of the Sea Damn Winged Creatures in my Newsletter

There we were. Having a nice day on the deck and a seagull wants to join in on the fun of staring at peaceful waters. Not on my watch.

waves broom

Return to the sea, beast!

New Stuff Added restart rake task

Rails 5 brings a restart Dr. Frankenstein would be envious of. The new rake restart command will knock your app out cold and zap it back to life.

Enumerable#without

We also got a new Enumerable method to quickly rid of us stuff harmful to humans: [:whooping_cough, :vaccine, :measles].without(:vaccine).

Finally, we can sleep easy.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

Google Summer of Code 2015

Wed, 03/04/2015 - 20:43

We're happy to announce that Ruby on Rails will once again be part of Google's Summer of Code (GSoC) in 2015. The GSoC is a global program where students can contribute to open source projects and get paid while doing so. Every project has at least one community member that will act as mentor for the duration of the program. The only requirements for students applying are:

  • Being at least 18 years old.
  • Being enlisted as a part or full-time college student.

Some of the work done in the past years includes the web-console shipped with Rails 4.2 and RubyBench.org, a long running suite of Ruby benchmarks. You can see the full list of projects from previous years here: 2013, 2014.

We have started writing down a list of ideas for this year, you can find it in the Rails GSoC Wiki. This summer we want to focus on fixing existing problems instead of adding new user facing features. If you are interested in getting involved please join our mailing list and let us know what you'd like to work on.

Student applications can be submitted starting March 16 and the deadline is March 27. If you're wondering what's involved in becoming a GSoC student then the Google Student Guide has all the details on what's expected and what you will gain from taking part in the program.

What if you're not a student? You can still help out by discussing ideas on the mailing list, and if have previous experience contributing to Rails and are willing to make a strong commitment to help out the next generation of developers, you can apply to be a mentor.

Useful links:

[ANN] Rails 4.2.1.rc3 and 4.1.10.rc3 have been released!

Mon, 03/02/2015 - 21:41

Hi everyone,

I am happy to announce that Rails 4.2.1.rc3 and 4.1.10.rc3 have been released.

There were found some regressions in the last release candidates so, following release process we are releasing new release candidates.

If no regressions are found expect the final release this Thursday, on March 5, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-256

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-256 hashes.

Here are the checksums for 4.1.10.rc3:

$ shasum -a 256 *4.1.10.rc3* 3fdef2245e3d1cbd23403e319e90504de5a6d9c1d3882520555d5474888e64e8 actionmailer-4.1.10.rc3.gem b6ee8ce93aeb4e1c3698b5d181997a6cfd903df4ee5ad4ff006ba1e8e4f9cbeb actionpack-4.1.10.rc3.gem 855a02aa85d9df389ee401d9374ba1b6de97302bfa5b16cc3461b2068f2bac8c actionview-4.1.10.rc3.gem 1f255ba5894e9c4ba62ff1362eefb5d4f69341e1b6633f34f5a74f3e5f50abe7 activemodel-4.1.10.rc3.gem ae172a7ad49fe1aa007f99d33c9365f4027f7460aa20b3f2c4e699a029894e9f activerecord-4.1.10.rc3.gem efc14fb6fb046314e770f39702cebae5108abfe8a2f972baf503354b4d8962f6 activesupport-4.1.10.rc3.gem 6958130cadf8306732bd0ef09a49f689c85e8f675aa77392c2bff605dc6fe795 rails-4.1.10.rc3.gem 056ae92c2c280c30683bff33840b580dd95a4f6d6a76d760f82dc48d84a39862 railties-4.1.10.rc3.gem

Here are the checksums for 4.2.1.rc3:

$ shasum -a 256 *4.2.1.rc3* 7290338a93cb8d1552aca33b09a8bc00e7774f0110fc1e28af0b495cbd393f24 actionmailer-4.2.1.rc3.gem 9838985eb38550060d4220a9015ca983df1c87c8d059f8943c52db721f2fb7d3 actionpack-4.2.1.rc3.gem a9af6c312c869ddae79a220c5179d0d80f4fab397115976287a5877d2f80dea2 actionview-4.2.1.rc3.gem 922c47a84ffb1bfde8bc2e3fb18f2e19bb61c8326428c31c09be56296ce6a63b activejob-4.2.1.rc3.gem 1183c5e4f8c2d608b1d7b774a1720c7595359356c77b495880acf79d22ae0865 activemodel-4.2.1.rc3.gem 7976ea67cd5f7193247751bb6300990d3c5ba9eb74c5ea0c4b382e776a23889e activerecord-4.2.1.rc3.gem 69704869beccae0694ba5f1e9179eaaa60b99b19adc9a48e890fe1b573894a82 activesupport-4.2.1.rc3.gem 90043b5ce4c1191e62a0c5b6bc4580553a540d7e6d18c7975de180fe8af61462 rails-4.2.1.rc3.gem a72254f18ab76fca24f3a478779aa34f41a5bf89f71a8fe16f1945f991f0b10f railties-4.2.1.rc3.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails

Sat, 02/28/2015 - 01:56

Another week went by and here we are again, this is Greg with the latest news from the Rails community.

Featured This Week's Contributors

36 amazing people helped to make Rails even better this week! Thanks everyone!

Interview with Carlos Antonio and Rafael França

Interview with Rails Core team members about early days of their Rails contribution, Rails team, Brazil Rails community, their day to day tools of choice and workflow, and how everyone can help out with Rails.

New Stuff Default belongs_to validation

belongs_to relations will now trigger a validation error by default if the association is not present. If you wish, you can turn this off with the optional: true option per association.

Move the validate! method to ActiveModel::Validations

validate! was part of Active Record, but with this commit you can use it on any Active Model object!

Allow limit option for MySQL bigint primary keys

From now on, you can set a limit for your bigint type primary keys in MySQL.

Improved Faster template partial caching

Collections automatically use a read_multi for partials starting with a cache call from now on, which makes them faster.

Fixed Fixed ActiveModel.model_name.to_json

Previously, calling User.model_name.to_json would result in an infinite recursion, because .model_name inherited .as_json from Object. This commit delegates as_json to the correct handler to fix that.

Fixed mysql's schema.rb dumper

MySQL doesn't have a boolean datatype, it uses a tinyint with a limit option, so if we dumped the schema from MySQL we couldn't load it to Postgres since limit is invalid for Postgres booleans. This patch fixes that by not adding the limit to schema.rb.

Deprecated skip_action_callback is deprecated

In future skip_before_action, skip_after_action and skip_around_action will raise an ArgumentError if the callback doesn't exist, so using skip_action_callback, which calls all three methods will probably fail, therefore it became deprecated.

One More Thing™ Richard Schneeman is a Rails Committer!

Please welcome our newest Rails Committer @schneems!

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1.rc2 and 4.1.10.rc2 have been released!

Wed, 02/25/2015 - 22:40

Hi everyone,

I am happy to announce that Rails 4.2.1.rc2 and 4.1.10.rc2 have been released.

There were found some regressions in the last release candidates so, following release process we are releasing new release candidates.

If no regressions are found expect the final release this Monday, on March 2, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-1

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-1 hashes.

Here are the checksums for 4.1.10.rc2:

$ shasum *4.1.10.rc2* 2ac66bc18099e97e91433dd2a16610840adbe229 actionmailer-4.1.10.rc2.gem 7af1a70d5436936df7602ce25b8607dd657d26fd actionpack-4.1.10.rc2.gem 25f87be1c36551583c5bdc3034731ab9d327e650 actionview-4.1.10.rc2.gem 61eddccaa119592a8fa3424e33af26f3c52afd87 activemodel-4.1.10.rc2.gem 30bd5d356e704f9122f51d0503a3d57bd4b7c456 activerecord-4.1.10.rc2.gem 1da6fd1c9f6a5bebf743ddbc13d25c54293baf5a activesupport-4.1.10.rc2.gem 7c42be6e6a7f059dcad390f0d690aff842138870 rails-4.1.10.rc2.gem 3f036bc1450f4e784ee0ce8118f057f68e56422d railties-4.1.10.rc2.gem

Here are the checksums for 4.2.1.rc2:

$ shasum *4.2.1.rc2* af8d52587a348ea70e9b6a751207a9a6aa4044f3 actionmailer-4.2.1.rc2.gem ab218bb9396357b48027e1512544cfb3188ec3bd actionpack-4.2.1.rc2.gem 5315fd389885775fc03863146704aab37333e0c8 actionview-4.2.1.rc2.gem 15c11c2aff82876241a3a9ff90b00dfb6d834fa2 activejob-4.2.1.rc2.gem f700c318378a8e3292b23c9495e68bc49f9a1ef1 activemodel-4.2.1.rc2.gem dc91f9e52b8fd9ab0fac294f13ab7f9425cb0a67 activerecord-4.2.1.rc2.gem ab95e792e93392605985469b3ec0546d3917c63c activesupport-4.2.1.rc2.gem af242d941255666ce08a51813898fe8c29bb613d rails-4.2.1.rc2.gem c0e72712484fdc821d6a0f08504318e075feba83 railties-4.2.1.rc2.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: http_cache_forever, AR::Base.suppress and more!

Fri, 02/20/2015 - 23:37

My Valentine’s Day letter to Ruby on Rails:

“Dear Rails, remember the first time we met?
You were just 1.2, and I was in an unhealthy relationship with Perl and PHP.

I saw you in the library and I immediately fell in love.
For seven years, you made my code more readable and my skills stronger.

You are the most beautiful framework and always will be.
I cannot wait to see you turn 5.0.” – Claudio

Featured This Week's Contributors

Apparently I'm not the only one in love with Ruby on Rails. 36 programmers contributed to Rails this week, 10 of them for the first time. Keep loving!

New Stuff Add http_cache_forever to ActionController

The new method is perfect to cache results that are meant to never expire, such as static pages.

Add ActiveRecord::Type.register

You can now reference with a symbol any database type that is specific to your adapter, such as:
ActiveRecord::Type.register(:money, MyMoneyType)

Add ActiveRecord::Base.suppress

Wrapping a block with suppress will prevent any save operation from hitting the database. Check the PR for a real-world example.

Improved Add :time option to ActiveRecord::Base.touch

You can now touch an ActiveRecord instance with a different time than the current time.

Removed Removed RecordTagHelper

The helpers div_for and content_tag_for will be gone in Rails 5. Grab the record_tag_helper gem if you still need them!

Removed ActiveModel::Errors getters/setters

If you ever used person.errors.get(:name) or person.errors[:name] to read an error message, you should now switch to person.errors.messages[:name]. add_on_empty and add_on_blank are gone too.

Update: you should be using person.errors[:name] after all! Use person.errors.add(:name, ...) to append.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.2.1.rc1 and 4.1.10.rc1 have been released!

Fri, 02/20/2015 - 23:26

Hi everyone,

I am happy to announce that Rails 4.2.1.rc1 and 4.1.10.rc1 have been released.

If no regressions are found expect the final release this Wednesday, on February 25, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.1.9

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.2.0

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-1

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-1 hashes.

Here are the checksums for 4.1.10.rc1:

$ shasum *4.1.10.rc1* 173663408f82f4f6b718d0493ccd7372b1ebb04b actionmailer-4.1.10.rc1.gem e2f2239ba08498b0222c73d749ce1fc0b80227ce actionpack-4.1.10.rc1.gem 3ea60b85b2c6d9c6dd517f19cca6d4184f168c3e actionview-4.1.10.rc1.gem fad32c6fa623c848c59c7ec4ea6f95bbe55c800e activemodel-4.1.10.rc1.gem 5fa2bbfc017cd5000d5a05923b0ed00eaf0763d2 activerecord-4.1.10.rc1.gem 593986a562d2967690def2acfb4f3807b749c8d5 activesupport-4.1.10.rc1.gem 9b3243b73e8094bdef92a9a3fe8e13c59660fcb8 rails-4.1.10.rc1.gem 629269e65fb4b2eaacf3341060b06a6857479ec8 railties-4.1.10.rc1.gem

Here are the checksums for 4.2.1.rc1:

$ shasum *4.2.1.rc1* 7540e2101c574c1b28428d25b26e2840bd811b07 actionmailer-4.2.1.rc1.gem 2256120417e0a2c554fa622f59bfce672c565df2 actionpack-4.2.1.rc1.gem 6add23517bf1c2cdc29b04e5634305c0b5bcc496 actionview-4.2.1.rc1.gem 894a9419a70e6061e07ab2c23f75f0c5fd886b10 activejob-4.2.1.rc1.gem c268d0711889e2df9991a80f1e01180573b79f9f activemodel-4.2.1.rc1.gem 39ca67053e52260954876fbf385e260b56c870b9 activerecord-4.2.1.rc1.gem a937629fed3f6ddeb9f939273dd5e7955a7f25a1 activesupport-4.2.1.rc1.gem 773cce2bacede08390bf9488665d03af33995271 rails-4.2.1.rc1.gem 703b959222cd0466a244cca5bd322de9fb7b76a6 railties-4.2.1.rc1.gem

I'd like to thank you all, every contributor who helped with this release.

This week in Rails: Speedy Integration Tests, Enum Queries and more!

Sat, 02/14/2015 - 01:00

Dearest darling, reindeer-eyed reader

Hither summoned is Kasper, Duke of Friendly Ghosts, to bring forth thy worthy commits and Pull Requests of Rails as subscribed.

Thusly commences our journey on this Friday the 13th - Ok, I'm sick of writing like that.

Featured This Week's Contributors

A round of applause goes to this weeks contributors from all of us at this virtual news desk. We editors did a full on spit take when realizing a whopping 28 people contributed. Nothing seals that memory quite like the scalding coffee on our thighs.

Integration Tests Only 12% Slower than Controller Tests

You may have thought Speed was just a movie. But we're feeling it this week as our world got rocked with a refactoring bringing integrations' speed closer to functionals. Stay at the edge of your seats for the sequel.

Improved Make enums queryable by label

After an amazing refactoring job on Active Record internals that took many months, this change was easy. Enums can now be queried by their labels. Post.where(status: Post.statuses[:draft]) is out in favor of Post.where(status: :draft).

fresh_when and stale? accepts a collection

They say that stale? is everyone's best friend. It will be by you until you get to fresh_when. Even if you need help when a collection seems impassable. Look around, you dingus, your best friends are adaptable.

There's usage examples on the Pull Request.

find_in_batches got an end_at option

Sometimes you gotta know when the fun oughta stop. Sadly find_in_batches and find_each would keep going like the party animals they are. Or were, as both matured this week with a new end_at option. But they're still keeping it plenty rad in their parents basement if anybody asks.

One More Thing™ Kasper Timm Hansen is an issues team member

Kasper first impressed us when he shipped his 2013 Rails GSoC project in 2014. In his spare time he writes a newsletter called This Week in Rails. In fact he wrote this very issue. Aw shucks, I thought there was something familiar about me and I!

Wrapping up

This was a weird one, right? Hopefully of the glorious kind.

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: locate_many, emoji partials and more!

Sat, 02/07/2015 - 00:10

Hey there!

Newsletter team is back to your inbox delivering all latest good commits and pull requests from Rails. Hopefully you have your favorite drink right there with you to make this quick reading ever better.

Featured This week's Rails contributors

Over 25 people contributed to Rails this week alone. Perhaps by our next newsletter your name could be on that list too!

Improved Efficient lookup for many models in Global ID

Latest version of Global ID 0.3.2 brings better look up for models. You can pass an array of ids to locate_many to fetch records only once per model. Check out the juicy comments of Core Team members figuring out their own API.

Partial names don't have to be valid Ruby identifiers

Rails master can render partial names like _the-friday-party.html.erb just fine now as well. If you are feeling extra adventurous, you might even try naming your partials with emojis!

perform_enqueued_jobs can filter jobs by type

By passing a only option you are able to test only those particular jobs while any other inside the block won't be performed. Checkout the changelog entry introduced for a crystal clear example usage.

Fixed Child record validation respects validate: false on parents

Took a few years but this is fixed! Persisting child records will respect the current validation state of the parent record. Also good to see how the team is worrying about performance penalties for fixes in ActiveRecord core logic.

Removed Dropping xhr helper to simplify AC::TestCase

You will need to update your test suites in case they use either xhr or xml_http_request test helpers. Instead switch to the regular get and pass the keyword argument xhr: true

Farewell Rails built in documentation tasks

Now comes a goodbye to a few friends most of us never knew we had: the documentation rake tasks. The three siblings doc:app, doc:rails and little doc:guides joins local documentation in a better place - online. Our thoughts are with the remaining rake tasks. Rest In Protocols.

One More Thing™ Eileen M. Uchitelle is a Rails Committer

Eileen has been doing awesome work on Active Record related to performance refactoring and bug fixes besides mentoring some students in the Facebook Open Academy program.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: Relation#or, file fixtures, kwargs and more!

Sat, 01/31/2015 - 02:13

It is that time of the week again!

This is Greg, bringing you this week's interesting commits and pull requests from Rails.

Featured This week's Rails contributors

Let's start with a big thank you for all the people who helped this week to make Rails better!

New Stuff Added #or to ActiveRecord::Relation

A long waited feature is added to Active Record and from now on you can combine two Active Record relations with the or operator.

ActiveSupport::Testing::FileFixtures

With this addition to ActiveSupport::Testing there is no need to write custom helpers for testing features requiring a sample file (i.e. file uploads).

Use kwargs in the test's HTTP methods

Support for keyword arguments is added to the HTTP methods of the controller tests. An example of the new syntax:

post :create, params: { y: x }, format: :json Improved Improved performance of integration tests

delegate turned out to be a bottleneck at the URL generation in the integration tests. With this patch the integration tests of the applications should have a speedup.

Allow hyphenated names for plugins

From now on you can generate a Rails plugin with a hyphenated name (i.e. namespaced engines).

Deprecated *_via_redirect integration test methods are deprecated

The *_via_redirect methods are deprecated but do not fear, you can use follow_redirect! in your test suite for the same behaviour.

Fixed Fixed HTTP basic authentication nil issue

When request.authorization returned nil, Rails raised a NoMethodError, but this is fixed now.

AR::Relation#group accepts SQL reserved keywords

This patch allows you to group by SQL reserved keywords with the group method of Active Record.

One More Thing™ Arthur Nogueira Neves is a Rails Committer

Please welcome our newest Rails Committer!

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: model error details, drop table if exists and more!

Sat, 01/24/2015 - 01:01

It's Friday! Gotta get down on This Week in Rails!

This is Claudio, rushing to get you the weekly updates on interesting commits and pull requests from Rails.

Featured This week's Rails contributors

25 contributors helped Rails become a better framework. Keep the patches coming, and Rails 5 will be ready before you know it.

New Stuff ActiveModel::Errors#details

Given a user without an email, user.errors.details will return {email: [{error: :blank}]}. In some cases, this is more useful than the message {email: ["can't be blank"]} provided by user.errors.messages.
There's a good usage example in this blog post.

:if_exists option for drop_table

Writing drop_table(:users, if_exists: true) in a migration ensures that the migration will run without exceptions, whether or not the "users" table exists.

ActionController::Renderer

The ActionController::Base#render method can now output a template anywhere, even outside of a controller!

ActiveRecord::Base#accessed_fields

Calling @users = User.all to list all users works, but you can get better performance by indicating the exact fields you intend to access, for instance with @users = User.select(:name, :email).

The new @users.accessed_fields method will give you the list of fields accessed from the model, so you can easily optimize your queries using .select rather than .all.

Improved Speed up ActionController::Renderer

Everyone loves a pull request that speeds up Rails, especially if the performance gain is documented and verifiable.
When in doubt, always use benchmark/ips to provide benchmark results for comparison.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: tokens migrations, method_source and more

Fri, 01/16/2015 - 22:30

Live from our servers, it's This Week in Rails!

As always we're your inside scoop of interesting commits, pull requests and more from Rails.

This is Kasper, and I'm ready to serve you this scoop. I tapped keys on the board in front of me to make words appear. It's quite the tapestry.

Let's get to it!

Featured This week's Rails contributors

33 contributors made this week happen. Pull Requests were merged, new friendships were made... I think I even heard someone say they saw a cat online. That's a rare sight, and part of what made this week special. Thanks everyone!

Tokens in migrations and model generators

As a follow up to last week's has_secure_token, both the migration and model generators can create token attributes.
rails g migration add_auth_token_to_users auth_token:token. rails g model user auth_token:token.
The model generator automatically adds has_secure_token :auth_token to your new model file.

New Stuff method_source added to the default Gemfile

On Rails 5 when you generate a new app, you'll find 'method_source' in your Gemfile. This gem extends the Method class with source and comment methods to aid your debugging. There's a good usage example in this comment.

Fixed Allow '1' or true for acceptance validation

Previously validates_acceptance_of would only accept '1' as a valid attribute value. Now you can assign true to an attribute and the validation will pass.

Time columns will be aware of application time zone

In Rails 5.1 your time columns will adhere to the time zone of your Rails application. To make the upgrade path smoother, the config.active_record.time_zone_aware_types option has been added. See the deprecation warning here for help.

One More Thing™ Validation callbacks tested with contexts

A feature you might not have heard about is validation contexts, which allow you to specify a context a callback should only be run for. Like this: before_validation callback, on: :create. The link shows a few tests being for this on before/after_validation. Here is a more advanced example.

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

This week in Rails: a new beginning

Sat, 01/10/2015 - 02:00

Happy New Year, everyone!

It was only less than a year ago when I sent the first issue of This week in Rails to a total of 14 recipients, discussing some of the latest and greatest additions to the Rails codebase.

43 weeks later, this little hobby project has evolved into a true community effort –- we have assembled an amazing team of editors and other volunteers (join us!), keeping 2000 subscribers in the loop and highlighting some key contributions to our beloved web framework every week.

I am incredibly excited to announce that starting this week, we will be cross- posting the content from the newsletter to the Riding Rails blog. With this, we hope to reach even more members of our wonderful community, increase transparency, involve more of you in the decision-making processes and maybe even inspire some future contributors!

I would like to thank my team at Brewhouse and Goodbits for supporting the project and getting it off the ground, as well as all the volunteers who helped along the way. Of course, huge thank you to all of the Rails contributors who did all the hard work! <3 <3 <3

Without further ado, here is the first 2015 issue of This week in Rails!

Welcome to This week in Rails, your weekly inside scoop of interesting commits, pull requests and more from Rails.

Hi there this is Washington again!

Hope you all had the most gorgeous holidays ever doing things you love the most. The newsletter team is back to work and you should receive your Rails weekly news as usual. Here are some of the latest and greatest improvements, fixes and releases during the break.

Featured Ruby 2.2.0 Released

YAY! December 25th saw another important Ruby release. See the blog post for all the goodies in this new version and keep in mind Rails 5 will target Ruby 2.2+ exclusively. As of this week, Rails' master branch will only work on Ruby 2.2 or above.

Rails 4.0.13 and 4.1.9 have been released!

4.0.13 is last planned release for the 4.0 release series, so you should migrate off it as soon as possible. From here on, the 4.1 (you can thank Rafael) and 4.2 release series will continue to receive regular bug fixes. Consult the maintenance policy for details.

This week's Rails Contributors

Apparently holidays is no excuse for going to the beach all day long and having drinks away from computers. Rails community kept working hard during the break to keep improving the framework we appreciate so much. Thank you all!

New Stuff Halting callback chains by throwing :abort

As of Rails 5 callback chains won't be halted by returning false. Instead you should explicitly throw :abort. This will help keep things consistent among all frameworks included in Rails and avoid accidental halting caused by unexpected false return values.

New date helper

Working with days and weeks just got a bit easier. Keep in mind these new helpers on_weekend?, next_weekday, prev_weekday, next_day, prev_day. Perhaps you had even implemented them before yourself! Good thing Rails will have them out of the box now :)

has_secure_token in Active Record

Rails will ship with a new Active Record macro for generating base 58 tokens out of the box. There's probably a large amount of applications already using this feature. As of the next major release you won't need to add another dependency or implement it yourself.

Fixed More conventional filenames for mailers

Mailer generators now appends the _mailer suffix in the filename just like controller and jobs generators.

Rails 5.0 deprecations clean up

This week Rails got some more love with this major clean up (339 additions and 1,433 deletions) on its master branch. There's still some deprecations left though as the team figures how to best address them.

One More Thing™ Automatic type casting deprecated in Arel

Watch out library authors! Sean Griffin put a lot of effort into improving Arel extensibility. Please get in touch with him if you need APIs to help your use case. (See also these follow-up commits.)

Wrapping up

That's all for This week in Rails. As always, there are more changes than we have room to cover here, but feel free to check them out yourself!

P.S. If you enjoyed this newsletter, why not share it with your friends? :) If you wish to be part of this project please don't hesitate to contact Godfrey – there're a lot of ways you could help make this newsletter more awesome!

[ANN] Rails 4.1.9 and 4.0.13 have been released!

Tue, 01/06/2015 - 20:13

Hi everyone,

I am happy to announce that Rails 4.1.9 and 4.0.13 have been released.

This will be also the last release of 4.0 series as announced in a previous blog post.

As per our maintenance policy, the release of Rails 4.2.0 means bug fixes will only apply to 4-2-stable, regular security issues to 4.2.x, 4.1.x, and severe security issues to 4.2.x, 4.1.x, and 3.2.x. In addition to these already stated commitments, I agreed to also apply bug fixes to 4-1-stable until the Rails 5 release.

As before, we will announce in a future blog post when we will drop bug fixes support for Rails 4.1.

CHANGES since 4.0.12

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.1.8

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-1

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-1 hashes.

Here are the checksums for 4.0.13:

$ shasum *4.0.13* 75f128ffb5813f6ec895a2f6c000a18531232bfb actionmailer-4.0.13.gem 7356b2d90904ea3e5854a5fd5c969ff5521ee6bf actionpack-4.0.13.gem 019bc6e77c2c430e52d93642bee8ad137ec288d8 activemodel-4.0.13.gem fb367963994f153f68b904b8508b215b60a6a0ca activerecord-4.0.13.gem 55cbd61d330d29fac50249d5ab9964e34a102f44 activesupport-4.0.13.gem e4d679c792f0a2faafe69fd87217320bc318fc03 rails-4.0.13.gem 856d1f60df48479c4faba3de6d3ffcfadeee2f6b railties-4.0.13.gem

Here are the checksums for 4.1.9:

$ shasum *4.1.9* 7d4a8ce21aa0429ec5fc05c64e2f64fa769a1c4a actionmailer-4.1.9.gem 37b3990b77669877ab675124662ca5c0e880e556 actionpack-4.1.9.gem baf6c54a9f411e9399dc7f9ad99aaa892a43293a actionview-4.1.9.gem cd9c214923ea0094fb65825b1866c3bc5b80fbdb activemodel-4.1.9.gem 330a753ec001e38834406c464e306c3c43e276b5 activerecord-4.1.9.gem 66904e1371b047348d0247c43b9f1c3c596671bf activesupport-4.1.9.gem 12a8b208566f4c822cc9199f51f60fd8baf010bc rails-4.1.9.gem 2c494849ac54b8b3238d23fe62c81da37ca08e1b railties-4.1.9.gem

I'd like to thank you all, every contributor who helped with this release.

[ANN] Rails 4.1.9.rc1 and 4.0.13.rc1 have been released!

Fri, 01/02/2015 - 00:56

Hi everyone,

I am happy to announce that Rails 4.1.9.rc1 and 4.0.13.rc1 have been released.

This is the first release of the year and it includes a lot of bug fixes. This will be also the last release of 4.0 series as announced in a previous blog post.

As per our maintenance policy, the release of Rails 4.2.0 means bug fixes will only apply to 4-2-stable, regular security issues to 4.2.x, 4.1.x, and severe security issues to 4.2.x, 4.1.x, and 3.2.x. In addition to these already stated commitments, I agreed to also apply bug fixes to 4-1-stable until the Rails 5 release.

As before, we will announce in a future blog post when we will drop bug fixes support for Rails 4.1.

If no regressions are found expect the final release this Tuesday, on January 6, 2015. If you find one, please open an issue on GitHub and mention me (@rafaelfranca) on it, so that we can fix it before the final release.

CHANGES since 4.0.12

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

CHANGES since 4.1.8

To view the changes for each gem, please read the changelogs on GitHub:

Full listing

To see the full list of changes, check out all the commits on GitHub.

SHA-1

If you'd like to verify that your gem is the same as the one I've uploaded, please use these SHA-1 hashes.

Here are the checksums for 4.0.13.rc1:

$ shasum *4.0.13.rc1* bf4ddb5aa6eefc6e2495a1364974a5b396d94596 actionmailer-4.0.13.rc1.gem 2bf785e91159bba8fe324e2f48a72277f2b3cf33 actionpack-4.0.13.rc1.gem f9d92979e211ce7fa71252cf1b6b4ac94c7f0b91 activemodel-4.0.13.rc1.gem d5147f64e08a3f5aed4c22ff1ebf640ca6fc0ae3 activerecord-4.0.13.rc1.gem e6f1421262fd1064e973f3d2628c6129b4c20d17 activesupport-4.0.13.rc1.gem f7416fc8485bb8a622fb50e0dd2c3fa5ca4215fa rails-4.0.13.rc1.gem 8a0690bab5e43712e8e982fe02bf76ea989f9356 railties-4.0.13.rc1.gem

Here are the checksums for 4.1.9.rc1:

$ shasum *4.1.9.rc1* 8afbb9c71a8f6e0dff26daacde407fe35aac8375 actionmailer-4.1.9.rc1.gem a5fd439bc41844a3c02671d7425bfa71d96cfbf1 actionpack-4.1.9.rc1.gem a77aaa2f936445211e7455b3228a9bfe8f27a4ac actionview-4.1.9.rc1.gem 65a7acbf9ef9b47392a48ab4c9ace44f12ea1f60 activemodel-4.1.9.rc1.gem eb66d5c52f0740114de46e1a1b76a0079c723d1f activerecord-4.1.9.rc1.gem e758d54d7fabc7d23ff995646096f40d28df42a9 activesupport-4.1.9.rc1.gem 479a31dd8d9eea3de6f444139eaefc830c6db170 rails-4.1.9.rc1.gem dae65c526ec8ee3abab9a9e8807ad7b210b7941d railties-4.1.9.rc1.gem

I'd like to thank you all, every contributor who helped with this release.

Happy new year!