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.
Git is widely used version control system for managing source code and enhance collaboration.
Most important thing to take care while working with git is that you must be aware of branch you are working on, so that you don't accidentally make changes in wrong branch of your repository. This tricky in terminal as it doesn't show git branch name.
We can customize terminal in such a way that it shows current branch name of repository you are working on and reduces chances of making changes to wrong branch to great extent.
Here is how to do that:
Open bashrc file.
Uploading file to amazon S3 requires following steps:
I am assuming you have already set up your aws account and IAM users account.
If you have not installed AWS Toolkit for eclipse yet, you refer to this link.
Now we start the process of uploading file to aws S3 storage service.
1. create an upload form in jsp with form action as controller name.
Here, UploadVideoController is name of our controller.
When you use <input type="file"> element, you need to add enctype = "multipart/form-data" attribute to form tag.
enctype attribute's "multipart/form-data" allows entire files to be included in the data.
accept="video/* restricts files to be selected in video format.