Ruby on Rails Programming Tips

Upgrading Rails

mac_rails_on_windows.png

One tip to upgrade your Rails is by running Gem to get the latest release. You can do this using:

gem update rails -y
or
sudo gem update rails -y

If you are planning to upgrade your existing projects in Rails, you can try the following method:

• Open your_project/config/environment.rb and change RAILS_GEM_VERSION to determine the version you just upgraded to.
• Run rake rails:update from your project’s root directory (this will copy in new versions of javascript libraries, etc.).
• Check to make sure that any tests you may have written still pass.

Also remember to use gem cleanup to remove older versions of rails.

Debugging Rails

gif_rails_debugging1.gif

You can always debug your application and get it back on the rails if ever it something goes wrong. You have to check the application log files. See to it that “tail –f” commands are running on the server.log and development.log. Rails will then show debugging and runtime information to these files and debugging information will also be displayed in the browser on requests from 127.0.0.1.

Using the Ruby logger class from inside your controllers, you can also log your own messages directly into the log file from your code like:

class WeblogController < ActionController::Base
def destroy
@weblog = Weblog.find(params[:id])
@weblog.destroy
logger.info(“#{Time.now} Destroyed Weblog ID ##{@weblog.id}!”)
end
end

Using the [] for conditional processing

The process shown below is and example of using the [] to have the program execute a condition that searches the contents of an array till a match is found. It goes from the top to the bottom to check each and every member of the array to look for a match doing the requested process if it is found and returning nothing if nothing is found.

class BookList
def [](key)
if key.kind_of?(integer)
return @Books[key]
else
for C in 0…@Books.length
return @Books[i] if key == @Book[i].name
end
end
return nil
end
end

Though the above shown method is quite detailed and goes through the array thoroughly, there is a n easier method which we will show with the next post making the whole process not only easier but process faster.

RoR and Text Editors Part-2

More on text editors that are used with RoR and we not discuss VIM or Vi Improved. Vim like Emacs is quite efficient and easy to use with RoR provided it is set-up properly. The nice about Vim is that it has the nifty way of highlighting syntax in ruby making it easy to trace and debug. It features advanced features such as having a selective command and insert mode with the first being the default mode upon startup. It is not a word processor so fonts and other word processor features are not to be expected.

TextPad
One of the quickest and easiest to use as a text editor for making RoR programs with straightforward interface and features mostly adept to windows users. Though considered a text editor it is capable of syntax highlighting, search , spell check and macro recording which makes it a choice of many developers.

ArachnoRuby
Is deployable on both windows based and Unix based systems and is considered to be the native editor of RoR. It was not too user friendly so it quickly lost favor of many developers who turned to the other specified editors for programming code.

Getting Started and how to open Programs : Part 2

Save the text file with the following filename “first1.rb” and we now go into the syntax checking function and the facility provided to show the syntax check verbosely. The following code shows how code is checked for syntax correctness and returns the result of the said checking by typing the following code :

$ ruby :cw first1.rb

The “-c” flag initiates Ruby’s syntax checker while the “w” flag shows the result of the syntax checker. If there is no issue with the code being checked you get a “Syntax OK” result which means you can execute the code for there are no syntax issues. Type $ruby first1.rb on the command line and you get the result ” The concatenated line is : This is my first Ruby Program “

Getting Started and how to open Programs : Part 1

RubyonRails is similar to most programming languages where in one can use the command line in windows or a terminal in Unix based systems. All programs should be written and saves in plain text format for the compiler and interpreter to process it easily. The first program would give you a feel for the overall syntax of how the program is created and what the compiler does. Type the following code into the text file to see how it is done:

#this is a sample program
a = “This is”
b = “my first Ruby Program”
print “The concatenated line is :”
print a << b

The next post would show the continuation of the exercise.

Next step : Creating the database for the filename application

The next phase or step would be to create a database for the application to use. Make sure the MySql engine is running and in the command window type “mysql -u root -p” and press enter and another enter for the password when prompted for there has not been any defined password yet. You are now logged into the engine as the root user and proceed to create the database by entering the following command “create database filename_development”. Also type in “grant all on filename_development.* to ‘ODBC’@'localhost’ this tells windows to grant access to a user named ODBC so you avoid an error when you try to access the said database from the command prompt. We next tackle the creation of tables that would allow the database to store the information we send it.

Database manipulation

The database has been initialized, so now we get down to business of defining the fields in that database and include a field that we would call a foreign key which allows the establishment of the one to many relationship between the tables. This part of the process requires quite a bit of background of database creation, manipulation and handling. It also requires knowledge regarding the workings of data types. So assuming you do not have much knowledge in such areas do some more reading to give you a better understanding of what how and why they are there. The ROR developers might say that it is very easy to do and use ROR but without the background on logic formulation, data types and manipulation as well as database handling the rest of the posts which would tackle ever hardening topics and operations would be very difficult to make sense of.

Don’t get me wrong, we just want to make life easier for you and not have you not understanding anything at all.

Next Step : Creating Empty Applications

Now that all has been set-up and is working, you should be able to create empty apps which is merely defining the application using rails which automatically creates all the necessary directories that are needed. Open a command prompt window and go to the directory where it was installed and proceed into the rails_apps directory. Type in ‘rails filename’ and rails creates all the necessary directories you would be needing for the development process. Don�t get freaked out when you see the multitude of directories for they will be filled out by “RAILS” and not by you manually. The next post will discuss some of the nuances of those dizzying directories to take some of the fog over them out.

Simplifying the previous program with modifiers

As said in the past post, there is an easier way of doing the stuff we did in the last program which would be very helpful when coding thousands of line of code when you do end up building your own programs is ruby.

class BookList
def [](key)
if key.kind_of?(integer)
result = @Books[key]
else
result = @Books.find { |aBooks| key == sBooks.name}
end
return result
end
end

Simplifying the code further by using the ‘if’ statement as a modifier it becomes a shorter easier to attain the same results as with the first program:

class Booklist
def [](key)
return @Books[key] if key.kind_of?(Integer)
return @Books.find { |aBooks| aBooks.name == key }
end
end

The use of the ‘find’ command in Ruby is simply a call to a function that is executed and it can be compared to a block call in many other languages such as Perl, C++ or Java.