<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6510429457428840754</id><updated>2012-02-10T21:54:29.900-08:00</updated><title type='text'>Ruby on Rails,ROR,Ruby, Rails tips</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>12</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-5435447626975743815</id><published>2012-02-10T04:17:00.000-08:00</published><updated>2012-02-10T21:54:29.913-08:00</updated><title type='text'>Parallel Processing in Ruby On Rails</title><content type='html'>To process big data(i,e sending millions of bulk emails), you can use fork to create N independent sub processes  depending on your Machine's number of Processors. And thus you can get your Rails App more expedited.&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; font-family: Andale Mono,Lucida Console,Monaco,fixed,monospace; color: rgb(0, 0, 0); background-color: rgb(238, 238, 238); font-size: 12px; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;fork do&lt;br /&gt; &amp;nbsp;for i in 0..200000&lt;br /&gt;  &amp;nbsp;&amp;nbsp;puts "I am in sub process-1"&lt;br /&gt; &amp;nbsp;end&lt;br /&gt; &amp;nbsp;exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;fork do&lt;br /&gt; &amp;nbsp;for i in 0..200000&lt;br /&gt;  &amp;nbsp;&amp;nbsp;puts "I am in sub process-2"&lt;br /&gt; &amp;nbsp;end&lt;br /&gt; &amp;nbsp;exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;fork do&lt;br /&gt; &amp;nbsp;for i in 0..200000&lt;br /&gt;  &amp;nbsp;&amp;nbsp;puts "I am in sub process-N"&lt;br /&gt; &amp;nbsp;end&lt;br /&gt; &amp;nbsp;exit&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;N processes will be managed by your machine's OS and Processors&lt;br /&gt;I tested it on UBUNTU 11, Ruby 1.9.2, Rails 3.0.10&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-5435447626975743815?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/5435447626975743815/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2012/02/parallel-processing-in-ruby-on-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/5435447626975743815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/5435447626975743815'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2012/02/parallel-processing-in-ruby-on-rails.html' title='Parallel Processing in Ruby On Rails'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-366668532254379476</id><published>2011-12-16T08:01:00.000-08:00</published><updated>2011-12-16T08:40:05.039-08:00</updated><title type='text'>argument out of range and 0.0 issue on rails</title><content type='html'>Argument out of range Exception on windows7 with Rails3 and model fields class type is float(0.0). Actually I was trying to use mysql2 gem on windows7 in Rails3.&lt;br /&gt;&lt;br /&gt;How I fixed it in my case:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;My system was x86 typed(windows7) and I had 32 bit mysql client installed in my machine with Rails 3.1 and Ruby 1.9.2&lt;br /&gt;&lt;/li&gt;&lt;li&gt;I downloaded &lt;a href="http://www.vertstudios.com/blog/libmysqldll-32-bit-download/"&gt;libmysql.dll (32 bit)&lt;/a&gt; and placed it on windows/system32 and ruby/bin folder&lt;/li&gt;&lt;li&gt;I restarted my laptop and FIXED!&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;This is nothing but libmysql.dll version related issue with system&lt;/span&gt;!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-366668532254379476?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/366668532254379476/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2011/12/argument-out-of-range-and-00-issue-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/366668532254379476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/366668532254379476'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2011/12/argument-out-of-range-and-00-issue-on.html' title='argument out of range and 0.0 issue on rails'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-3937424016725128933</id><published>2010-02-27T01:36:00.000-08:00</published><updated>2010-02-27T01:52:07.893-08:00</updated><title type='text'>Dynamic Image from text/string in Rails</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Image will be generated dynamically from string or text:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Use - require 'RMagick'  in your class&lt;br /&gt;&lt;br /&gt;def draw_image&lt;br /&gt;#Image parameters&lt;br /&gt;options = {:img_width =&gt; 300, :img_height =&gt; 250, :text_color =&gt; "#FF0000", :font_size =&gt; 36,&lt;br /&gt; :text =&gt; "This is text", :bg_color =&gt; "#EFEFEF"}&lt;br /&gt;&lt;br /&gt;#Initialize a container with it's width and height&lt;br /&gt;container=Magick::Image.new(options[:img_width],options[:img_height]){&lt;br /&gt; self.background_color = options[:bg_color]&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;#Initialize a new image&lt;br /&gt;image=Magick::Draw.new&lt;br /&gt;image.stroke('transparent')&lt;br /&gt;image.fill(options[:text_color])&lt;br /&gt;image.font='/var/lib/defoma/x-ttcidfont-conf.d/dirs/TrueType/Verdana_Italic.ttf'&lt;br /&gt;image.pointsize=options[:font_size]&lt;br /&gt;image.font_weight=Magick::BoldWeight&lt;br /&gt;image.text(0,0,options[:text])&lt;br /&gt;image.text_antialias(false)&lt;br /&gt;image.font_style=Magick::NormalStyle&lt;br /&gt;image.gravity=Magick::CenterGravity&lt;br /&gt;&lt;br /&gt;#Place the image onto the container&lt;br /&gt;image.draw(container)&lt;br /&gt;container=container.raise(3,1)&lt;br /&gt;&lt;br /&gt;# To test the image(a pop up will show you the generated dynamic image)&lt;br /&gt;container.display&lt;br /&gt;&lt;br /&gt;# generated image will be saved in public directory&lt;br /&gt;#container.write("public/image.gif")&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pre-requisite :&lt;/span&gt; You must have rmagick and Imagemagick installed.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Details:&lt;/span&gt; http://www.simplesystems.org/RMagick/doc/draw.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-3937424016725128933?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/3937424016725128933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/dynamic-image-from-textstring-in-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3937424016725128933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3937424016725128933'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/dynamic-image-from-textstring-in-rails.html' title='Dynamic Image from text/string in Rails'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-3375073215147935758</id><published>2010-02-22T04:05:00.001-08:00</published><updated>2010-02-24T00:06:56.627-08:00</updated><title type='text'>How to develop rails plugin from scratch?</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Generate Plugin with command: ruby script/generate plugin hello_world&lt;/span&gt;&lt;br /&gt;It will create file system as bellow:&lt;br /&gt;- lib&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- hello_world.rb&lt;br /&gt;- tasks&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- hello_world_tasks.rake&lt;br /&gt;- test&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;- hello_world_test.rb&lt;br /&gt;- init.rb&lt;br /&gt;- install.rb&lt;br /&gt;- uninstall.rb&lt;br /&gt;- README&lt;br /&gt;- Rakefile&lt;br /&gt;- MIT-LICENSE&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;init.rb &lt;/span&gt;will be executed every time when your application runs. Generally hook code is to be included here like you want to make all methods of your plugin available in your app’s models, controllers, views and helpers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;#All methods in module HelloWorld will be available in all            #model’s object&lt;br /&gt;ActiveRecord::Base.class_eval do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;include HelloWorld&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#All methods in module HelloWorld will be available in all controllers&lt;br /&gt;ActionController::Base.class_eval do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;include HelloWorld&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;#All methods in module HelloWorld will be available in all views and all helpers&lt;br /&gt;ActionView::Base.class_eval do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;include HelloWorld&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;lib/ hello_world.rb : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example: &lt;/span&gt;&lt;br /&gt;# All methods in this library will be available in all models, controllers, views and helpers if you write code as init.rb above&lt;br /&gt;&lt;br /&gt;module HelloWorld&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def say_hello&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return "Hello World"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def hello_text&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return “this is text”&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;Now you need to do unit test your plugin’s methods. To do so follow:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;test/hello_world_test.rb:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example:&lt;/span&gt;&lt;br /&gt;require 'test/unit'&lt;br /&gt;require File.join(File.dirname(__FILE__),'../lib/hello_world.rb')&lt;br /&gt;&lt;br /&gt;class HelloWorldTest &lt; Test::Unit::TestCase&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;include HelloWorld # includes your library methods to test&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def test_this_plugin&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hello_world = say_hello &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assert_equal hello_world, "Hello World"&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assert_not_nil hello_world&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;def test_another&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;assert_equal true,true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;To run these test cases, go to your plugin’s directory with command prompt and run like: &lt;span style="font-weight: bold;"&gt;ruby test/hello_world_test.rb&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You are done actually with plugin!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Install.rb:&lt;/span&gt; It will be executed only once when the plugin is being installed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uninstall.rb:&lt;/span&gt; This will be executed when you do uninstall your plugin&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;README:&lt;/span&gt; In this file, you should write easy documentation of your plugin with examples. Also you may highlight yourself here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-3375073215147935758?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/3375073215147935758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/how-to-develop-rails-plugin-from.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3375073215147935758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3375073215147935758'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/how-to-develop-rails-plugin-from.html' title='How to develop rails plugin from scratch?'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-4079540574964737099</id><published>2010-02-13T02:19:00.000-08:00</published><updated>2010-05-02T04:08:57.454-07:00</updated><title type='text'>Security of rails Application on WEB</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Session Fixation:&lt;/span&gt;&lt;br /&gt;1. In the figure(&lt;a target="_blank" href="http://guides.rubyonrails.org/images/session_fixation.png"&gt;http://guides.rubyonrails.org/images/session_fixation.png&lt;/a&gt;), suppose a hacker login to the server with his own credential&lt;br /&gt;&lt;br /&gt;2. Server will store his information into session against client’s _session_id (server generates this id if there is no session id already created). Next time when this client requests this session information, server will response against that _session_id.&lt;br /&gt;&lt;br /&gt;3. Now suppose hacker becomes able to execute a script like hacker wrote a comment with following script to client’s blog post: &amp;lt;script&amp;gt;document.cookie="_session_id=16d5b78abb28e3d6206b60f22a03c8d9";&amp;lt;/script&amp;gt;.&lt;br /&gt;&lt;br /&gt;4. Suppose client refreshes his blog post page. Now client’s session id becomes equal with hacker’s session id!!!.&lt;br /&gt;&lt;br /&gt;5. Now any one from client or hacker will get client’s credential from session!!!&lt;br /&gt;&lt;br /&gt;6. Thus hacker will get client’s credential and do all as client&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection: &lt;/span&gt;&lt;br /&gt;Reset all session before login and store session information for login request like:&lt;br /&gt;&lt;br /&gt;reset_session&lt;br /&gt;Session[:user] = User from DB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SQL Injection:&lt;/span&gt;&lt;br /&gt;Suppose we have&lt;br /&gt;User.first(:conditions=&gt;["username= #{params[:username]} AND password= #{params[:password]}"])&lt;br /&gt;&lt;br /&gt;Will generate:&lt;br /&gt;SELECT * FROM users where username=params[:username] AND password=params[:password] limit 1&lt;br /&gt;&lt;br /&gt;What if you pass params[:password]=' OR '1'='1  ???&lt;br /&gt;&lt;br /&gt;Will generate:&lt;br /&gt;SELECT * FROM users where username=‘abc’ AND password=‘’ OR ‘1’=‘1’&lt;br /&gt;The query is true and now hacker is logedin!!! For the first user credential&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection:&lt;/span&gt;&lt;br /&gt;Use ? In string like:&lt;br /&gt;User.first(:conditions=&gt;["username=? AND pass=?",params[:username],params[:pass]])&lt;br /&gt;&lt;br /&gt;Use place holder like&lt;br /&gt;User.first(:conditions=&gt;"username=:username AND pass=:pass",{:username=&gt;params[:username], :pass=&gt; params[:pass]})&lt;br /&gt;&lt;br /&gt;Use Hash like:&lt;br /&gt;User.first(:conditions =&gt; {:username =&gt; params[:username], :password =&gt; params[:pass]})&lt;br /&gt;&lt;br /&gt;Use to_i for integer type data&lt;br /&gt;User.find(params[:id].to_i)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phishing(1):&lt;/span&gt;&lt;br /&gt;If a hacker writes HTML code in comment like:&lt;br /&gt;&amp;lt;img src="http://www.domain.com/projects/destroy/1" &amp;gt;&lt;br /&gt;than this img tag will request for an image source. Actually this src will make a request to projects controller, destroy method. Generally we check when destroy anything like:&lt;br /&gt;&lt;br /&gt;def destroy&lt;br /&gt;  project = Project.find(params[:id])&lt;br /&gt;  if(session_user &amp;amp;&amp;amp; session_user.id == project.user_id)&lt;br /&gt;        project.destroy()&lt;br /&gt;  end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;IF CONDITION will be true and hacker will be able to destroy client’s projects!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection:&lt;/span&gt;&lt;br /&gt;Verify requested method whether it is GET or POST in controller and in view use h() method before the comment body like&lt;br /&gt;&lt;%= h blog.comments.first.body %&gt;&lt;br /&gt;[Actually don’t trust user given input data]&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Phishing(2):&lt;/span&gt;&lt;br /&gt;If hacker writes HTML code of site’s login form into his comment like:&lt;br /&gt;&lt;br /&gt;&amp;lt;div class="login_form" &amp;gt;&lt;br /&gt;&amp;lt;form action="http://www.hackar.com/hack"&amp;gt;&lt;br /&gt;Username: &amp;lt;input type="text" name="username" &amp;gt;&lt;br /&gt;Password: &amp;lt;input type="password" name=”password”&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&lt;br /&gt;And the fool client fills out his username and password with this injected login form than hacker will be able to grab client’s credential!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection:&lt;/span&gt;&lt;br /&gt;call protect_from_forgery method from ApplicationController&lt;br /&gt;which will generates a hidden field with a token into all html form like&lt;br /&gt;&lt;br /&gt;&amp;lt;input name=“authentecity_token" value=“d8192312u3n123123091" type=“hidden" &amp;gt;&lt;br /&gt;&lt;br /&gt;When user submits this form server will check the submitted token against generated token.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mass assignment:&lt;/span&gt;&lt;br /&gt;Suppose we have users table with a column name role_id. If role id is 1 then the user will be Admin than our conventional registration/profile form will be like:&lt;br /&gt;&lt;br /&gt;&amp;lt;form action="/users/create" method="post"&amp;gt;&lt;br /&gt;Username: &amp;lt;input name="[user][username]" type="text"&amp;gt;&lt;br /&gt;Password: &amp;lt;input name="[user][password]" type="text"&amp;gt;&lt;br /&gt;Email: &amp;lt;input name="[user][email]" type="text" &amp;gt;&lt;br /&gt;First Name: &amp;lt;input name="[user][first_name]" type="text" &amp;gt;&lt;br /&gt;Last Name: &amp;lt;input name="[user][last_name]" type="text" &amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&lt;br /&gt;Using FIREBUG if I push &amp;lt;input nanme="user[role_id]" value="1" type="hidden" &amp;gt; into this form then any user will be able to become Admin!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection: &lt;/span&gt;&lt;br /&gt;Make role_id protected in user model which will be nil when user object is created&lt;br /&gt;&lt;br /&gt;To update this field from admin follow:&lt;br /&gt;model.rol_id = 1&lt;br /&gt;model.save(false)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;File Upload &amp;amp; Download:&lt;/span&gt;&lt;br /&gt;Do not place file in Rails/public if it is Apache’s home directory because it may be executed (like file.php) when requested&lt;br /&gt;&lt;br /&gt;Always use send_file method for download&lt;br /&gt;Check file type when upload&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Log file:&lt;/span&gt;&lt;br /&gt;All rails generated SQL, error report, responses are logged in log file&lt;br /&gt;&lt;br /&gt;In ApplicationController use the method bellow:&lt;br /&gt;filter_parameter_logging :password&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Part of Log File:&lt;br /&gt;Parameters: {"commit"=&gt;"Save", "action"=&gt;"create", "controller"=&gt;"[FILTERED]", “user"=&gt;{“password"=&gt;"[FILTERED]", “username"=&gt;“abc"}}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don’t use eval with params:&lt;/span&gt;&lt;br /&gt;Eval(params[:model]).find(1)&lt;br /&gt;What’s happened if you pass params[:model] = “User.destroy_all”&lt;br /&gt;&lt;br /&gt;It will become:&lt;br /&gt;Eval(“User.destroy_all”).find(1) !!!!!!!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Protection:&lt;/span&gt;&lt;br /&gt;params[:model].constantize.find(1)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Reference: &lt;/span&gt;http://guides.rubyonrails.org/security.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-4079540574964737099?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/4079540574964737099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/security-of-rails-application-on-web.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/4079540574964737099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/4079540574964737099'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2010/02/security-of-rails-application-on-web.html' title='Security of rails Application on WEB'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-6856877871929722601</id><published>2009-12-12T09:42:00.001-08:00</published><updated>2010-02-26T23:13:20.957-08:00</updated><title type='text'>Simple Math-Logic-IQ-Captcha in Ruby On Rails</title><content type='html'>This is controller based rails plugin for Ruby On Rails Application&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Features:&lt;/span&gt;&lt;br /&gt;1. It requires no migration, no file system management and no table&lt;br /&gt;2. Question will be rendered as Image, so no script can crawl or scan it&lt;br /&gt;3. Captcha result will be stored as encrypted in session&lt;br /&gt;4. No Configuration - You just have to have rmagick installed&lt;br /&gt;5. Try to develop on unix platform(I used UBUNTU 9.10, Rails 2.3.2, Ruby 1.8.7, Ruby Gems 1.3.5)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Screen shots:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_k88Cp_fIhP0/S4jEs0DWq9I/AAAAAAAAAB0/qS7RXJrx_rg/s1600-h/captcha_combo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 251px; height: 66px;" src="http://4.bp.blogspot.com/_k88Cp_fIhP0/S4jEs0DWq9I/AAAAAAAAAB0/qS7RXJrx_rg/s320/captcha_combo.jpg" alt="" id="BLOGGER_PHOTO_ID_5442816423843245010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_k88Cp_fIhP0/S4jEbcsJKJI/AAAAAAAAABs/ThcKaqGNlNY/s1600-h/captcha_textbox.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 69px;" src="http://1.bp.blogspot.com/_k88Cp_fIhP0/S4jEbcsJKJI/AAAAAAAAABs/ThcKaqGNlNY/s320/captcha_textbox.jpg" alt="" id="BLOGGER_PHOTO_ID_5442816125514098834" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Download link(Please see README file for usage):&lt;/span&gt; &lt;a href="http://www.4shared.com/file/230676461/13dad068/eqn_captcha.html"&gt;http://www.4shared.com/file/230676461/13dad068/eqn_captcha.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-6856877871929722601?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/6856877871929722601/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/simple-math-logic-iq-captcha-in-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/6856877871929722601'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/6856877871929722601'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/simple-math-logic-iq-captcha-in-rails.html' title='Simple Math-Logic-IQ-Captcha in Ruby On Rails'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_k88Cp_fIhP0/S4jEs0DWq9I/AAAAAAAAAB0/qS7RXJrx_rg/s72-c/captcha_combo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-7839675418921298743</id><published>2009-12-06T00:47:00.000-08:00</published><updated>2009-12-12T09:37:12.420-08:00</updated><title type='text'>Caching with rails</title><content type='html'>http://guides.rubyonrails.org/caching_with_rails.html&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-7839675418921298743?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/7839675418921298743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/caching-with-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/7839675418921298743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/7839675418921298743'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/caching-with-rails.html' title='Caching with rails'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-6412042220617836238</id><published>2009-12-04T21:17:00.000-08:00</published><updated>2010-02-26T05:04:56.007-08:00</updated><title type='text'>AJAX with Rails, Rails RJS</title><content type='html'>AJAX in Rails application with RJS&lt;br /&gt;RJS - Ruby JavaScript - Generates and executes javascript code from your controller in AJAX request to process your Ruby code as well as updates your page's html DOM finally. To see details of how it works lets start&lt;br /&gt;&lt;br /&gt;1. Suppose you have an ajax request call with an anchor tag in your view file like:&lt;br /&gt;&lt;%= link_to_remote('Click Me to show RJS',{:url =&gt; {:controller =&gt; 'experiment', :action =&gt; 'rjs'}, :loading =&gt; "", :complete =&gt; ''},{}) %&gt;&lt;br /&gt;&lt;div id="id1"&gt;this is content&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;And you want to update div of id 'id1' then&lt;br /&gt;2. In Controller :&lt;br /&gt; def rjs&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;#you may have ROR stuff here&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;render :update do |page|&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;page.replace_html 'id1', 'This is content after AJAX call' # div with id1 will be replaced with the string&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;Now click on the anchor then div of id ‘id1’ will be replaced by controller’s action’s method rjs’s response&lt;br /&gt;Thats all of RJS basic with only 2 steps&lt;br /&gt;&lt;br /&gt;Now if you want to replace div of id1 with another file’s content then you can do it like:&lt;br /&gt;     page.replace_html 'id1', :partial =&gt; "experiment/parts/part1", :locals =&gt; {:p1 =&gt; 1, :p2 =&gt; 2} &lt;br /&gt;     # part1 is your partial file (located in views/experiment/parts/_part1.html.erb)&lt;br /&gt;     # And you may pass parameters with locals p1, p2, …. pn&lt;br /&gt;     # you can catch this params in _part1.html.erb file like : &lt;%= p1 %&gt;&lt;br /&gt;     # You can also update more than 1 div in your view file with the same ajax request like:&lt;br /&gt;page.replace_html 'id1', :partial =&gt; "experiment/parts/part1"&lt;br /&gt;page.replace_html 'id2', ‘Another String’&lt;br /&gt;&lt;br /&gt;page.remove ‘remove_div_id’&lt;br /&gt;page &lt;&lt; “js_mehtod()” # where js_mehtod() is the javascript function which resides in your view.&lt;br /&gt;&lt;br /&gt;Now AJAX call with form submit event &lt;div id="id1"&gt;this is content&lt;/div&gt;&lt;br /&gt;&lt;% form_remote_tag :url =&gt; {:controller =&gt; 'experiment', :action =&gt; 'rjs'}, :loading =&gt; '', :complete =&gt; '', :html =&gt; {:method =&gt; :post} do %&gt;&lt;br /&gt;&lt;br /&gt;&lt;%= text_field :name %&gt;&lt;br /&gt;&lt;br /&gt;&lt;%= submit_tag(Submit) %&gt;&lt;br /&gt;     &lt;br /&gt;&lt;% end %&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To know more visit: http://www.developer.com/lang/print.php/10924_3668331_2&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-6412042220617836238?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/6412042220617836238/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/ajax-with-rails-rails-rjs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/6412042220617836238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/6412042220617836238'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/ajax-with-rails-rails-rjs.html' title='AJAX with Rails, Rails RJS'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-3953371687949424496</id><published>2009-12-02T19:50:00.000-08:00</published><updated>2009-12-02T20:12:49.633-08:00</updated><title type='text'>How to execute SQL Query in rails Application</title><content type='html'>&lt;br /&gt;&lt;br /&gt;connection = ActiveRecord::Base.connection();&lt;br /&gt;&lt;br /&gt;Example :&lt;br /&gt;1. connection.execute(any_sql_query)&lt;br /&gt;&lt;br /&gt;2.&lt;br /&gt;results = connection.execute("select * from users")&lt;br /&gt;  results.each do |row|&lt;br /&gt;        puts row[0]&lt;br /&gt;  end&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-3953371687949424496?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/3953371687949424496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/how-to-execute-sql-query-in-rails.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3953371687949424496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/3953371687949424496'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/how-to-execute-sql-query-in-rails.html' title='How to execute SQL Query in rails Application'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-1529691567054159140</id><published>2009-12-02T19:49:00.000-08:00</published><updated>2009-12-02T20:23:45.116-08:00</updated><title type='text'>Extending Rails ActiveRecord::Base Class</title><content type='html'>Example:&lt;br /&gt;1. Create a file(suppose init.rb) into your project's config/initializers folder&lt;br /&gt;&lt;br /&gt;2. Paste the following code :&lt;br /&gt;ActiveRecord::Base::class_eval do&lt;br /&gt;def self.your_method&lt;br /&gt;       return 'Now I am in ActiveRecord'&lt;br /&gt;   end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;3. Now you can call your_method from any Model of your application, i,e you are adding your_mothod(it will static method) to all your application's models&lt;br /&gt;&lt;br /&gt;4. You can call it like :&lt;br /&gt; User.your_method()&lt;br /&gt; Post.your_method()  etc...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-1529691567054159140?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/1529691567054159140/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/extending-rails-activerecordbase-class.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/1529691567054159140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/1529691567054159140'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/extending-rails-activerecordbase-class.html' title='Extending Rails ActiveRecord::Base Class'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-2873240694819854878</id><published>2009-12-01T01:32:00.000-08:00</published><updated>2010-02-26T05:13:10.655-08:00</updated><title type='text'>Ruby open class in Rails application, extending Fixnum,Array,Date,String Class</title><content type='html'>1. Make a library file(suppose "your_extension.rb") into your project's lib folder&lt;br /&gt;&lt;br /&gt;2. require File.join(RAILS_ROOT,'lib/your_extension.rb')&lt;br /&gt; - Add the above line at the End of environment.rb file&lt;br /&gt;&lt;br /&gt;3.Suppose you want to extend Ruby Fixnum Class with your mehtods(named prime?) then PASTE the following code into "your_extension.rb"&lt;br /&gt;&lt;br /&gt;class Fixnum &lt;br /&gt;&amp;nbsp;&amp;nbsp;def prime?&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;n = self&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;counter = 0&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;1.step(n,1) {|i|  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(n%i == 0) &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;counter += 1&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end  &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;if(counter == 2)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return false&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;end&lt;br /&gt;&amp;nbsp;&amp;nbsp;end &lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;4. Restart your Rails application and you are done!&lt;br /&gt;5. Now you can call prime? method from anywhere of your Rails application like &lt;br /&gt;   2.prime? -- returns true&lt;br /&gt;   5.prime? -- returns true&lt;br /&gt;   10.prime? -- returns false&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-2873240694819854878?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/2873240694819854878/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/ruby-open-class-in-rails-application.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/2873240694819854878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/2873240694819854878'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/12/ruby-open-class-in-rails-application.html' title='Ruby open class in Rails application, extending Fixnum,Array,Date,String Class'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6510429457428840754.post-689477406114435611</id><published>2009-11-30T20:17:00.000-08:00</published><updated>2009-11-30T22:05:52.004-08:00</updated><title type='text'>Pass and catch parameters with RAKE command in Rails Application</title><content type='html'>1. Create a rake file(suppose pass_catch_rake_params.rake) into your project's  lib/tasks folder&lt;br /&gt;&lt;br /&gt;2. Edit this rake file with the following code:&lt;br /&gt;  &amp;nbsp;task :rake_task =&gt; :environment do &lt;br /&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;puts ENV['param1'] # You are catching param1&lt;br /&gt;    &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;puts ENV['param2'] # You are catching param2&lt;br /&gt;  &amp;nbsp;end&lt;br /&gt;&lt;br /&gt;3. Run the Rake command like this:&lt;br /&gt;   &amp;nbsp;&amp;nbsp;rake rake_task param1=10 param2='This is a string'&lt;br /&gt;&lt;br /&gt;Where rake_task is the rake task name and param1,param2 are the parameters name&lt;br /&gt;In your rake task you will get param1 and param2 with their assigned value&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6510429457428840754-689477406114435611?l=abdul-barek-rails.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://abdul-barek-rails.blogspot.com/feeds/689477406114435611/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/11/pass-and-catch-parameters-with-rake.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/689477406114435611'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6510429457428840754/posts/default/689477406114435611'/><link rel='alternate' type='text/html' href='http://abdul-barek-rails.blogspot.com/2009/11/pass-and-catch-parameters-with-rake.html' title='Pass and catch parameters with RAKE command in Rails Application'/><author><name>Abdul barek</name><uri>http://www.blogger.com/profile/13592209981512984864</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
