make_model_searchable adds simple searching functionality to active record models. No need to implement same search function for each model every time!
What is does?
Provides modular solution to add search functionality for selected fields. It let’s you specify which fields you want to make searchable adding searchable_attributes in model. If no field is specified, all attributes are searched.
It uses Arel — query manager that active record uses for active record query interface.
There are many improvements to be made, such as adding support for allowing to search joined associations, ability to search from numeric and date fields, and few more.
JSON is favorite format for exchanging data between server and client developers. Rails provides support for rendering proper JSON response, making it easy to focus on core functionality of application. Here are few things I learned to create clean, customized response.
Suppose we have a User model with fields such as first_name, last_name, picture, age, authentication_token, password_digest and timestamps fields such as created_at and updated_at. Using render json: @user will convert user object to json by calling “to_json” method of user for you.
Generated response contains all fields of our User model, including authentication tokens, password digest, timestamps or other sensitive information related to user which should not be permitted in response.
To prevent such information from being sent I used to prepare customized json responses by logic related to rendering inside of helper classes and controller actions. That approach just increased redundancy, inconsistency, inefficiency and was harder to maintain. Luckily, soon I got introduced to concept of overriding “as_json” method.
Recently I used Rspec to implement Test Driven Development(TDD) approach for developing an existing rails application. After setting up test environment it was time to migrate data from development database to test database in order to test some controller actions.
There are some neat ways to use 'factories' or 'fixtures' but that wasn't right choice due to size factor.
Taking dump of database and restoring into test db, well that's quick and easy solution but I didn't want data of all tables.
I was searching for a better solution and I found one. I used rails console to migrate data from development environment to test environment.
Here's what rails guide has to say about rails console:
The console command lets you interact with your Rails application from the command line. On the underside, rails console uses IRB, so if you've ever used it, you'll be right at home. This is useful for testing out quick ideas with code and changing data server-side without touching the website.