Год выпуска: 2011-2013
Производитель: Ryan Bates
Сайт производителя: http://railscasts.com
Продолжительность: 10-15 минут
Тип раздаваемого материала: Видеоурок
Дополнительные продвинутые эпизоды каждую неделю
В дополнение к еженедельным бесплатным эпизодам, дополнительные продвинутые эпизоды каждый понедельник. Райан Бейтс будет углубляться в сложные темы, такие как тестирование, развертывание, передовой опыт, и многое другое!
Пересмотренные варианты старых эпизодов
Пересмотренные варианты старых эпизодов будут выпущены в течение недели. Эти эпизоды полностью перезаписаны, чтобы привести их в соответствие с последними версиями Rails и широкоэкранный формат видео.
#287 Presenters from Scratch
Oct 03, 2011 | 14 minutes | Views, Refactoring
Clean up complex view logic with the help of presenters, and doing this from scratch gives you a lot of flexibility. Here I show not only how to create presenters, but how to test them using Test Unit and RSpec.
#51 will_paginate (revised)
Oct 06, 2011 | 6 minutes | Plugins
Almost every Rails application needs pagination, and will_paginate is a great way to go. Here I show you how to set it up, customize the way it looks, and see how it compares with Kaminari.
#289 PayPal Recurring Billing
Oct 10, 2011 | 24 minutes | eCommerce
Here I show how to add PayPal recurring payments to an existing checkout process using PayPal's Express Checkout and the paypal-recurring gem.
#147 Sortable Lists (revised)
Oct 13, 2011 | 6 minutes | Views, Ajax
Here I show how to use jQuery UI to make a sortable list and a "sort" action to handle the updating. Top it off with acts_as_list to make it feature complete.
#291 Testing with VCR
Oct 17, 2011 | 13 minutes | Testing, Plugins
If you ever need to test an application which communicates with an external API, VCR is the way to go. Here I show a workflow in RSpec, how to use with capybara-mechanize, how to add sanitization filtering, and more.
#104 Exception Notifications (revised)
Oct 20, 2011 | 6 minutes | Plugins, Debugging
Few things are worse than seeing a "Something went wrong" 500 error on your production application. Here I show how to be notified when this happens using exception_notification and mention several other alternatives.
#293 Nginx & Unicorn
Oct 24, 2011 | 19 minutes | Tools, Production
Nginx and Unicorn make a killer-combo for hosting a Rails application in production. Learn how to configure each in a Vagrant virtual machine in this episode.
#158 Factories not Fixtures (revised)
Oct 27, 2011 | 9 minutes | Testing, Tools
Fixtures are external dependencies which can make tests brittle and difficult to read. In this episode I show how to use Factory Girl to generate the needed records directly in the tests.
#295 Sharing Mustache Templates
Oct 31, 2011 | 17 minutes | Views, Plugins
#153 PDFs with Prawn (revised)
Nov 03, 2011 | 11 minutes | Plugins
Prawn is an excellent Ruby library for generating PDF documents. Here you will learn how to add it to a Rails application through a separate PDF renderer class.
Nov 07, 2011 | 14 minutes | Plugins, Ajax, Views
#102 Auto-Complete Association (revised)
Nov 10, 2011 | 9 minutes | Forms, Ajax
A select menu is often used for setting a belongs_to association, but you should also consider using a text field with autocomple. Here I use jQuery UI and show two different solutions: client side and server side.
#299 Rails Initialization Walkthrough
Nov 14, 2011 | 13 minutes | Rails 3.1
In this episode I walk you through the internals of the Rails initialization process and show exactly what happens behind the scenes when starting up the Rails application.
#111 Advanced Search Form (revised)
Nov 17, 2011 | 6 minutes | Views, Forms, Search
It is often best to use a GET request when submitting a search form, however if it is an advanced search form with a lot of fields then this may not be ideal. Here I how how to create a search resource to handle this.
#301 Extracting a Ruby Gem
Nov 21, 2011 | 16 minutes | Plugins, Testing
In this episode I show how to extract a Ruby Gem from an existing Rails application, test it with RSpec and Supermodel, and a add Railtie.
#88 Dynamic Select Menus (revised)
Nov 25, 2011 | 7 minutes | Forms, Views
Do you need to dynamically change one select menu based on the value of another? Here I show how to filter states/provinces by a selected country using grouped options and a dab of CoffeeScript.
#303 Publishing a Gem
Nov 28, 2011 | 11 minutes | Tools
In this second part on making a gem, you will learn how to publish a gem by releasing it to rubygems.org, testing it through Travis CI, documenting it on RubyDoc.info, and advertising it on various sites.
#182 Cropping Images (revised)
Dec 02, 2011 | 11 minutes | Plugins, Forms
Allow users to interactively crop uploaded images using Jcrop and Carrierwave. Includes a live preview that shows the resulting image.
#305 Authentication with Warden
Dec 05, 2011 | 12 minutes | Authentication
Warden makes it easy to move authentication up into Rack middleware. This means authentication can be accessed outside of a Rails controller such as in routes or in a mountable engine.
#120 Thinking Sphinx (revised)
Dec 09, 2011 | 10 minutes | Active Record, Plugins, Search
Sphinx is a full-text search engine for use with MySQL or PostgreSQL. Learn how to add Thinking Sphinx by defining an index on your model and searching with various options.
#307 ElasticSearch Part 2
Dec 12, 2011 | 16 minutes | Search, Plugins
This final part on ElasticSearch and Tire will show how to make more complex search queries, customize the indexing, and add facets.
#114 Endless Page (revised)
Dec 16, 2011 | 7 minutes | Ajax
Transform traditional pagination into infinite scrolling which will automatically fetch more records when the user scrolls down to the bottom of the page.
#309 A Shell-Scripting Story
Dec 19, 2011 | 10 minutes | Tools
This episode continues off of the previous episode on Oh My ZSH showing how to script Z Shell. Here I show how to write a Rake autocompletion script and cover a few more useful utilities.
#17 HABTM Checkboxes (revised)
Dec 22, 2011 | 6 minutes | Active Record, Forms, Views
A many-to-many association can be edited through checkboxes in a form. Here I show how to do this with a has_many through association compete with clickable labels.
#311 Form Builders
Dec 26, 2011 | 12 minutes | Forms, Views, Refactoring
Forms often follow a similar pattern with a lot of repetition. Learn how to clean up form views and remove duplication with the help of form builders.
#164 Cron in Ruby
Dec 29, 2011 | 6 minutes | Tools, Plugins
Cron is a common solution for recurring jobs, but it has a confusing syntax. In this episode I show you how to use Whenever to create cron jobs using Ruby. Some alternative scheduling solutions are also mentioned.
#313 Receiving Email with Mailman
Jan 02, 2012 | 11 minutes | Tools
The Mailman gem makes it easy to receive email in a Rails application. Here I show how to write a script to run Mailman in its own process and pull down mail from a POP3 account.
#171 Delayed Job (revised)
Jan 07, 2012 | 8 minutes | Plugins, Background Jobs
Long requests should be moved into a background process, and Delayed Job is one of the easiest ways to do this because it works with an Active Record database.
#315 Rollout and Degrade
Jan 09, 2012 | 13 minutes | Plugins, Deployment
Learn how to use the Rollout gem to deploy a feature to a select group of users and the Degrade gem to automatically disable it upon failure. Also included is a way of doing this from scratch.
#123 Subdomains (revised)
Jan 13, 2012 | 7 minutes | Routing, Rails 3.1
In Rails 3.1 subdomains are easier than ever to use. Here I show how to route a subdomain to a specific controller action, generate links, nest resources, and more.
#317 Rack App from Scratch
Jan 16, 2012 | 15 minutes | Tools
Rack comes with many helpful utilities such as request and response objects, various middleware, and MockRequest for testing. Here I cover all of these while building a Rack app from scratch.
#72 Adding an Environment (revised)
Jan 19, 2012 | 4 minutes |
Rails comes with three environments: development, test, and production, but it is easy to add your own. Here I show how to add a separate staging environment and how to start up Rails under this.
#319 Rails Middleware Walkthrough
Jan 23, 2012 | 14 minutes | Rack
Here I describe each Rack middleware that is included in a Rails app which will give you a better understanding of what a request goes through behind the scenes before it hits your application.
#150 Rails Metal (revised)
Jan 27, 2012 | 6 minutes | Rack
Rails metal may have been removed in Rails 3, but it is possible to bypass the entire Rails stack through middleware as shown in this episode.
#321 HTTP Caching
Jan 30, 2012 | 15 minutes | Caching, Views, Performance
With HTTP response headers you can the cache in the user's browser and proxies. Etags, Last-Modified, Cache-Control and Rack::Cache are all covered here
#89 Page Caching (revised)
Feb 02, 2012 | 9 minutes | Caching, Performance
Page caching is an efficient way to cache full content to be served by the front-end web server. Learn how to deal with pagination, expiration with sweepers, and user-specific content in this episode.
#323 Backbone on Rails Part 1
Feb 08, 2012 | 18 minutes | Plugins, Ajax
In this first part of a two part series you will learn basic Backbone concepts including models, collections, routers, views and events. The backbone-on-rails gem is used for Rails integration.
#169 Dynamic Page Caching (revised)
Feb 11, 2012 | 7 minutes | Caching, Performance, Ajax
#325 Backbone on Rails Part 2
Feb 13, 2012 | 24 minutes | Plugins, Ajax
In the second part of this two part series on Backbone.js, we finish up the Raffler application. Included is how to create entries through a form, respond to events, extract sub-views, pre-populate records, visit routes, and more.
#90 Fragment Caching (revised)
Feb 18, 2012 | 9 minutes | Caching, Views, Performance
If you need to cache a certain section of a page instead of the entire page, fragment caching is the way to go. Learn how caching is stored, how to create auto expiring caches, and more.
#327 MiniTest with Rails
Feb 21, 2012 | 15 minutes | Testing, Plugins
MiniTest is a fast and lightweight testing library. Here you will learn how to use it in a Rails app for model, helper, and integration testing. The Turn gem is also demonstrated for prettier test output.
#250 Authentication from Scratch (revised)
Feb 25, 2012 | 13 minutes | Authentication
Simple password authentication is easy to do with has_secure_password. Here you will learn how to make a complete Sign Up, Log In, and Log Out process as well as restrict access to certain actions.
#329 More on Twitter Bootstrap
Feb 28, 2012 | 12 minutes | Plugins, Views, Forms
This episode continues on the Twitter Bootstrap project showing how to display flash messages, add form validations with SimpleForm, customize layout with variables, and switch to using Sass.
#234 SimpleForm (revised)
Mar 03, 2012 | 9 minutes | Forms, Views, Plugins
Easily generate complex forms with SimpleForm. Here I show how to convert bulky markup into a concise list of fields, customize it by passing options, and add error handling.
#331 A/B Testing with Split
Mar 07, 2012 | 10 minutes | Plugins, Views, Forms
Split testing allows you to experiment with different designs and track conversions to determine which one is the most effective. Learn how to do A/B testing using Split in this episode.
#26 Hackers Love Mass Assignment (revised)
Mar 08, 2012 | 6 minutes | Security, Active Record, Models
One of the most common security issues in a Rails application is the mass-assignment vulnerability which allows a user to set any attribute on the model. Learn how to prevent it in this episode.
#333 Extending Refinery CMS
Mar 14, 2012 | 14 minutes | Plugins, Views
Here I continue on Refinery and show how to add database-backed content by generating an engine. You will also learn how to override Refinery's views and controllers in this episode.
#201 Bundler (revised)
Mar 16, 2012 | 9 minutes | Tools, Plugins
Bundler makes it easy to manage Ruby Gem dependencies. Learn how to use it in a Rails application, see what's new in Bundler 1.1, convenient ways to run bundle exec, and how to fix gem compilation issues.
#335 Deploying to a VPS
Mar 21, 2012 | 18 minutes | Deployment, Production, Tools
Deploying a Rails application can be overwhelming because there are so many different options. Here I present a pattern for deploying a Rails app to a VPS using nginx, Unicorn, PostgreSQL, rbenv and more.
#133 Capistrano Tasks (revised)
Mar 24, 2012 | 10 minutes | Deployment, Tools
Learn the basics of writing Capistrano tasks, how to set variables, and run commands on a remote server. Then peak into the internals of Capistrano's deploy tasks to see how they work.
#337 Capistrano Recipes
Mar 27, 2012 | 13 minutes | Deployment, Production, Tools
Get the most out of Capistrano by writing specific recipes with ERB templates. Here I show how to deploy to a blank VPS by running just a few Capistrano commands.
#138 I18n (revised)
Mar 29, 2012 | 10 minutes | Views
Translate a site into other languages through internationalization (I18n). Here I show how to store a locale in the URL and manage translated text through YAML files.
#339 Chef Solo Basics
Apr 06, 2012 | 17 minutes | Production, Deployment, Tools
Chef is a provisioning tool which allows you to spin up production servers automatically. Here I show how to get started with Chef Solo and create a custom cookbook.
#54 Debugging Ruby (revised)
Apr 07, 2012 | 7 minutes | Debugging, Tools
This episode will show you how to debug a rails app using the "debugger" gem: set a breakpoint, inspect variables and change the executed code at runtime.
#341 Asset Pipeline in Production
Apr 11, 2012 | 13 minutes | Production, Deployment, Tools
The Asset Pipeline is very useful, but it can be a pain in production. Here I show why it works the way it does, and how to customize it to fit your deployment setup.
#56 The Logger (revised)
Apr 13, 2012 | 6 minutes | Tools, Debugging
The log file will show what is going on behind the scenes of a Rails request. Learn how to log messages, add tags, override formatting, and more.
#343 Full-Text Search in PostgreSQL
Apr 17, 2012 | 16 minutes | Search, Tools, Plugins, Active Record
PostgreSQL offers full-text searching right out of the box. This episode shows how to write queries from scratch, apply tools like Texticle and pg_search, and optimize performance through indexes.
#196 Nested Model Form (revised)
Apr 19, 2012 | 11 minutes | Forms, Views, Active Record
Apr 24, 2012 | 10 minutes | Plugins, Tools
With hstore you can add schema-less data to PostgreSQL. This allows you to store model attributes without creating separate database columns. Watch how to do this using the activerecord-postgres-hstore gem.
#61 Sending Email (revised)
Apr 28, 2012 | 8 minutes | Mailing
Thanks to Action Mailer, sending email in Rails is easy but there are several gotchas to be aware of. Here I show how to send an email upon submitting a form and the configuration options necessary.
#347 Rubber and Amazon EC2
May 03, 2012 | 17 minutes | Deployment, Production, Plugins, Tools
Deploying to Amazon EC2 allows you to scale an application quickly. Learn how to use Rubber to deploy to the cloud with just a few commands and monitor the cluster with various web tools.
#258 Token Fields (revised)
May 05, 2012 | 10 minutes | Forms, Ajax, Plugins
The Chosen plugin makes it easy to turn a many-to-many select menu into a searchable token field. Then see how the jQuery Tokeninput field can help with AJAX loading and creating new records.
#349 Rails Modularity
May 09, 2012 | 13 minutes | Rack, Models, Performance
Rails is a modular framework allowing you to include only what you need. Here I show how the smallest Rails app works, and then I take a look at how to whittle down a full Rails application stack.
#207 Syntax Highlighting (revised)
May 11, 2012 | 8 minutes | Views, Plugins
Here I compare several syntax highlighting solutions and show how to use Pygments in a Rails app. I also show how to integrate it with Markdown and add caching.
#351 A Look at Meteor
May 16, 2012 | 15 minutes | Tools, Ajax
#154 Polymorphic Association (revised)
May 19, 2012 | 11 minutes | Active Record, Routing
A polymorphic association allows a model to belong_to different types of other models. Here I show how to make a single comment model belong to articles, photos, and events.
#353 OAuth with Doorkeeper
May 23, 2012 | 19 minutes | APIs, Plugins
Doorkeeper makes it easy to create an OAuth 2 provider. This episode also shows how to setup OmniAuth as an OAuth client and use the oauth2 gem to communicate with an API.
#87 Generating RSS Feeds (revised)
May 26, 2012 | 8 minutes | Views
If you have a page containing a dynamic list of records, consider providing an RSS or Atom feed for it. It is quite easy to do with XML Builder and the atom_feed helper method as shown in this episode.
#355 Hacking with Arel
May 30, 2012 | 15 minutes | Active Record, Refactoring, Search
Here I show a variety of ways to rewrite a long SQL query using only Active Record and Arel. This includes generating scopes dynamically, adding an "or" operator, and adding a powerful "match" method.
#241 Simple OmniAuth (revised)
Jun 02, 2012 | 11 minutes | Authentication, Plugins
OmniAuth makes it easy to do user authentication through a third party provider such as Twitter or Facebook. Learn a simple approach in this episode.
#357 Adding SSL
Jun 08, 2012 | 14 minutes | Security
It is important to protect a user's private information with HTTPS. Here you will learn how to get it working on your local machine, configure Rack SSL, install certificates for production, and more.
#48 Console Tricks (revised)
Jun 09, 2012 | 9 minutes | Tools
Here you will learn how to get the most out of the Rails console. I will also demonstrate several utility gems and how to use them without adding them to the Gemfile.
#359 Twitter Integration
Jun 15, 2012 | 14 minutes | Plugins
Here I show how to integrate Twitter into a Rails app. This includes fetching data, caching it, and even how to authenticate as a user signing in to your application through Twitter.
Jun 16, 2012 | 8 minutes | Views, Controllers, Routing
#361 Facebook Graph API
Jun 25, 2012 | 14 minutes | Authentication, Tools, Plugins
Learn how to use the Facebook Graph API with the Koala gem to fetch data from Facebook and post content through a user. Here I delve into permissions, error handling, and more.
Jun 28, 2012 | 11 minutes | Testing, Plugins
#363 Facebook Open Graph
Jul 02, 2012 | 11 minutes | Tools, Plugins, Background Jobs, Deployment
This episode builds on last week's episodes and shows how to integrate Facebook further through the Open Graph protocol. You will also learn how to tunnel your local server and move Facebook communication into a background process.
#209 Devise (revised)
Jul 06, 2012 | 8 minutes | Authentication, Plugins
Devise is one of the most popular authentication plugins for Rails. Here I show how to set it up with a User model and configure the modules, views, routes, and more.
Jul 09, 2012 | 10 minutes | Rails 4.0, Performance, Production
The config.threadsafe! option will likely be enabled by default in Rails 4.0. Here you will learn what this option does, how it affects production, and some tips on thread safety.
#235 Devise and OmniAuth (revised)
Jul 13, 2012 | 10 minutes | Authentication, Plugins
In this episode I build upon a standard Devise setup and show how to add 3rd party authentication using OmniAuth. This includes support for user validations and is compatible with normal password authentication.
Jul 18, 2012 | 11 minutes | Tools
Celluloid puts an object-oriented spin on multi-threaded development. Here I cover the fundamental features of Celluloid in several examples.
#16 Virtual Attributes (revised)
Jul 20, 2012 | 11 minutes | Active Record, Forms
Virtual attributes are a clean way to add form fields that do not map directly to the database. Here I show how to handle validations, associations, and more.
#369 Client-Side Performance
Jul 24, 2012 | 14 minutes | Performance, Tools
Optimizing Rails performance can only take you so far. The client-side plays a big part in how fast a page feels. Here I show many tools that can help make your apps faster than ever.
#238 Mongoid (revised)
Jul 28, 2012 | 9 minutes | Models, Plugins
Mongoid is a Ruby gem for interacting with MongoDB. Here I show the basics of setting up an app, querying for records, adding embedded associations, overriding the id, and more.
#371 Strong Parameters
Aug 03, 2012 | 12 minutes | Plugins, Rails 4.0, Authorization
The strong_parameters gem is an improvement over attr_accessible to securely handle mass assignment even when you have complex authorization logic. The functionality will likely be added to Rails 4 so it is a good idea to learn how it works.
#59 Optimistic Locking (revised)
Aug 04, 2012 | 8 minutes | Active Record
There is a chance one user will unintentionally override someone else's changes if they update a record near the same time. One solution is to use optimistic locking. The updated_at column can also be used for this as shown.
#373 Zero-Downtime Deployment
Aug 09, 2012 | 12 minutes | Production, Deployment, Performance
Here I show how to accomplish zero-downtime deployment using Unicorn. I also cover gotchas when working with migrations and how to put up a maintenance page when you do need to take down the site.
#213 Calendars (revised)
Aug 10, 2012 | 9 minutes | Views, Forms, Plugins
Learn how to add a calendar to your Rails app. Whether it be a date picker using jQuery UI or a full page calendar for browsing records, I will show you how to do it in this episode.
Aug 16, 2012 | 16 minutes | Deployment, Production, Tools
Monit can help ensure your Rails app stays up and running smoothly. Here I show how to set it up, receive alerts, and keep tabs on it through a web interface.
#137 Memoization (revised)
Aug 18, 2012 | 9 minutes | Performance, Caching
Memoization is a convenient way to cache a method's response. Here I show several ways to accomplish this from scratch since the ActiveSupport::Memoizable module has been deprecated.
Aug 30, 2012 | 15 minutes | Production, Deployment, Performance, Tools
Trinidad is designed to serve JRuby web applications and gives you the power of Java while still keeping the feel of traditional Rails deployment. Here I show how to setup a Capistrano recipe, configure it, and more.
#117 Semi-Static Pages (revised)
Sep 02, 2012 | 8 minutes | Routing
There are many ways to handle static pages in a Rails application. Here I show two approaches including one that uses a RESTful style PagesController to keep the content in the database
#379 Template Handlers
Sep 04, 2012 | 12 minutes | Views
Here I will demonstrate creating two template handlers. One for Ruby which is great for JSON or CSV formats. Another for interpreting Markdown which is useful for informational content.
#380 Memcached & Dalli
Sep 12, 2012 | 12 minutes | Caching, Performance, Production, Plugins
Memcached is an excellent cache store, and Dalli is the best way to interact with it through Ruby. Here I show various ways to use Memached in a Rails app including how to set it up in production.
#223 Charts & Graphs (revised)
Sep 15, 2012 | 12 minutes | Views, Performance
If you have a lot of data, consider adding a graph to provide an overview of it. Here I show how to use Morris.js to chart an Order model and visualize trends in the data.
#381 jQuery File Upload
Sep 21, 2012 | 13 minutes | Views, Ajax, Plugins
Here you will learn how to upload multiple files over ajax using jQuery File Upload. I start with the basic functionality and customize it to fit the user interface.
#383 Uploading to Amazon S3
Sep 26, 2012 | 14 minutes | Views, Ajax, Plugins
Here I show how to upload files directly to Amazon S3 using CarrierWave Direct and Fog. I then walk through another project which uses jQuery File Upload to handle multiple files and does not use CarrierWave.
#136 jQuery & Ajax (revised)
Sep 28, 2012 | 14 minutes | Ajax, Views
#385 Authorization from Scratch Part 1
Oct 07, 2012 | 15 minutes | Authorization, Security
Authorization can be difficult to implement and test because it often involves complex logic that exists throughout the entire app. Here I demonstrate how to test and implement authorization from scratch.
#386 Authorization from Scratch Part 2
Oct 11, 2012 | 20 minutes | Authorization, Security
This finishes the series on building authorization from scratch by refactoring the permission logic into a DSL, restricting authorization with attributes, and combining with strong_parameters to protect params.
#85 YAML Configuration (revised)
Oct 14, 2012 | 8 minutes | Tools
Keeping passwords and secret tokens in source control is a security risk. Here I show how to move these settings out into a YAML configuration file which can be loaded in as a hash or environment variables.
#388 Multitenancy with Scopes
Oct 20, 2012 | 12 minutes | Active Record, Authorization
A multi-tenant application can be difficult to implement because the data for each tenant must be completely separate. Here I show how to do this using subdomains and default scopes in Active Record.
#389 Multitenancy with PostgreSQL
Oct 27, 2012 | 11 minutes | Active Record, Authorization
PostgreSQL Schemas can help create a multi-tenant app by keeping data separate at the database layer. Integrating with migrations can be tricky though, so watch this episode for the full details.
#106 Time Zones (revised)
Oct 28, 2012 | 7 minutes | Active Support
Active Support makes it easy to work with time zones. Learn how to add a Time Zone select field to a user form and watch out for the gotchas.
Nov 07, 2012 | 10 minutes | Testing, Tools, Plugins
#103 Site-Wide Announcements (revised)
Nov 12, 2012 | 11 minutes | Active Record, Ajax, Testing
#392 A Tour of State Machines
Nov 17, 2012 | 12 minutes | Plugins, Active Record, Testing
Here I show how three popular state machine gems can be used to clean up a list of boolean/datetime fields. I also show a custom solution which keeps track of the history of events.
#394 STI and Polymorphic Associations
Nov 25, 2012 | 14 minutes | Refactoring, Active Record
Single Table Inheritance (STI) can help organize branching logic into separate classes, but a polymorphic association may be a better fit if there are unique database columns.
#162 Tree-Based Navigation (revised)
Dec 01, 2012 | 10 minutes | Active Record, Plugins, Views
If your Rails app is content-heavy, consider organizing it in a tree menu structure. Here I show how to add top-level tabs, nested links in a side bar, and breadcrumbs to go up the hierarchy.
#395 Action Controller Walkthrough pro
Dec 02, 2012 | 11 minutes | Controllers, Rack
Do you ever wonder what goes on behind the scenes when a Rails controller handles a request? What do the "render" and "redirect_to" methods do exactly? This and more covered as we walk through the code of ActionController::Base.
#397 Action View Walkthrough pro
Dec 09, 2012 | 15 minutes | Code Walkthrough, Views
Find out exactly what Rails is doing under the hood when it renders a view template for a response. What object context handles the template? How does the lookup process work? That and more covered in this code walkthrough.
#63 Model Name in URL (revised)
Dec 16, 2012 | 9 minutes | Routing, Active Record
A model's ID in the URL is not very helpful to the user. Consider adding the name which can also improve SEO. Learn how to override to_param, add a slug attribute, and make a catch all route for deep nesting.
#398 Service Objects pro
Dec 18, 2012 | 12 minutes | Controllers, Refactoring, Rails 4.0
Models can quickly become a grab-bag of unrelated methods if behavior is constantly being pushed from the controller. Here I show how to refactor this using Concerns and Service Objects.
#399 Autocomplete Search Terms pro
Dec 31, 2012 | 17 minutes | Performance, Caching
Learn how to add autocompletion to a search form and improve performance using Rack middleware, caching and switching from SQL to Redis.
#229 Polling for Changes (revised)
Jan 14, 2013 | 10 minutes | Ajax, Performance
Polling may not be as common today as pushing changes over an open socket, however it is still an effective, simple solution if you do not need instantaneous updates.
#401 ActionController::Live pro
Jan 19, 2013 | 14 minutes | Rails 4.0, Ajax
Server-sent events allow you to trigger events on the browser from a persistent connection to the server. This requires Rails stream data which can be done through ActionController::Live, a feature upcoming in Rails 4.
#403 Dynamic Forms pro
Jan 27, 2013 | 14 minutes | Forms, Views
Learn how to add fields to a form dynamically using another form, complete with custom field types. It's fieldception!
#148 Custom App Generators (revised)
Feb 03, 2013 | 10 minutes | Tools
Learn how to customize the Rails app generator to fit your preference. This episode shows how to do this using .railsrc file, app templates, app builders, RailsWizard, and AppScrolls.
#405 AngularJS pro
Feb 05, 2013 | 16 minutes | Ajax, Plugins, APIs
AngularJS is an awesome framework for easily creating rich, client-side applications. Its powerful bindings allow you to do a lot with very little code. Here I show how to integrate Angular with a Rails app.
#407 Activity Feed from Scratch pro
Feb 14, 2013 | 14 minutes | Views
Creating an activity feed presents some interesting challenges. Here I share my thought process behind my implementation including when to use callbacks and a few tricks with partials.
#165 Edit Multiple (revised)
Feb 25, 2013 | 15 minutes | Forms
Editing one record at a time can be tedious work. Here you will learn three different ways to edit multiple records at once using checkboxes.
#408 Ember Part 1 pro
Mar 04, 2013 | 15 minutes | Views, Plugins
#410 Ember Part 2 pro
Mar 12, 2013 | 14 minutes | Views, Plugins, APIs
Here we continue our look into Ember.js. First we add a JSON API to persist the entries through ember-data. Then we finish up the project by adding a computed property and a view object.
#22 Eager Loading (revised)
Mar 20, 2013 | 7 minutes | Performance, Active Record
One way to improve performance is to reduce the number of database queries through eager loading. Here I demonstrate this and compare the difference between the "includes" and "joins" methods.
#411 Performance Testing pro
Mar 27, 2013 | 16 minutes | Performance
Learn how to add performance tests that automate benchmark and profile reports. Here I show how to find the bottlenecks to optimize a page. I also show how to compile Ruby with gcdata to get information about memory usage.
#413 Fast Tests pro
Apr 10, 2013 | 17 minutes | Performance, Testing, Tools
A slow test suite can put a damper on test-driven development. In this episode I show a variety of ways to optimize specs including: selective testing, preloading Rails, and testing outside of Rails.
#53 Handling Exceptions (revised)
Apr 20, 2013 | 11 minutes | Controllers, Routing, Production, Rack
By default, Rails will render a static error file when an exception occurs in production. Here you will learn how to fully customize this behavior and render dynamic error pages.
#414 Batch API Requests pro
Apr 27, 2013 | 18 minutes | Rack, APIs
Here I demonstrate how to perform bulk API operations though a single request using Rack middleware. This is great if you need to trigger multiple actions at once such as if the user goes offline.
Формат видео: MP4
Видео: H.264 / AVC, 960 × 600, ~150 Кбит/сек, частота кадров 6-9 кадров
Аудио: MPEG-4 AAC, 48000 Гц, 98 кбит/сек, стерео