<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkMDR3o6cSp7ImA9WhdXGE0.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429</id><updated>2011-08-31T09:34:36.419-07:00</updated><category term="JRubi 1.5" /><category term="ruby on rails web development" /><category term="Agile Web Development" /><category term="web designing and development services" /><category term="ruby on rails consultants" /><category term="ruby rapid application development" /><category term="custom software development" /><category term="Rubi On Rails" /><category term="ROR 2.0" /><category term="content management system" /><category term="Ruby on Rails Development Services" /><category term="ror application development" /><category term="RoR developers Chicago" /><category term="IT consultant Chicago" /><category term="content management system using RoR" /><title>Ruby on Rails Agile Web Development</title><subtitle type="html" /><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://ruby-on-rails-web-development.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/RubyOnRailsDevelopment" /><feedburner:info uri="rubyonrailsdevelopment" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><entry gd:etag="W/&quot;Dk4ARXoyfip7ImA9Wx9SFEg.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-8449868280804039347</id><published>2010-12-04T01:29:00.000-08:00</published><updated>2010-12-04T01:29:04.496-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-04T01:29:04.496-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR developers Chicago" /><category scheme="http://www.blogger.com/atom/ns#" term="ror application development" /><title>3 Effective Reasons for the Popularity of Ruby on Rails Development</title><content type="html">&lt;b&gt;&lt;a href="http://ruby-on-rails-web-development.blogspot.com/"&gt;Ruby on Rails&lt;/a&gt;&lt;/b&gt; (RoR) is a full-fledged web application framework written in Ruby programming language. It is an open source technology.&amp;nbsp; Rails help the web developers in building websites and applications providing structure for codes written during the development process. Ruby is an object-driven programming language which is easy to understand. It helps in providing powerful features and meta-programming capabilities.&amp;nbsp; A key feature of Ruby on Rails (RoR) is that developers have to write codes for only those areas where the application deviates from the standard. &lt;br /&gt;
&lt;br /&gt;
Some of the reasons for the popularity of Ruby on Rails Development include:&lt;br /&gt;
&lt;br /&gt;
1. Leader amongst programming languages on the web: There are many programming languages available in the market for web development. Some of them are: Python, Java and PHP but Rails leads these programming languages. Rails give the developers a real productivity boost for developing web applications and Ruby offers domain specific languages.&amp;nbsp; Hence, Ruby on Rails is considered to be leader amongst programming languages on the web.&lt;br /&gt;
&lt;br /&gt;
2. Designed to make programming work easier: Ruby on Rails helps the developers in simplifying the process of writing codes. It helps in checking the code quality. If there are any errors in the codes it is directly reported to the developers and they can make adequate changes instantly. This simplifies the process of the developer and they are able to complete their task quickly.&amp;nbsp; The process of programming is much faster as compared to other frameworks because of Ruby and CoC (Convention over Configuration).&amp;nbsp; Ruby code is very readable and can be self- documented. This reduces the work of the developers. &lt;br /&gt;
&lt;br /&gt;
3. Opportunity for developers to create better codes: As the task gets simplified with the help of Ruby on Rails, developers have the opportunity to make the programming codes into something better. They can re-work on the program and can come up with new ideas for the development process. &lt;br /&gt;
&lt;br /&gt;
Ruby on Rails helps the organization in improving the overall productivity of delivering tools by eliminating the repetitive tasks. It is useful to opt for Ruby on Rails framework when there is limited time duration and the organization wants to build a powerful web application which eliminates the initial cost of IT project.&amp;nbsp; &lt;b&gt;&lt;a href="http://www.softwebsolutions.com/ruby-on-rails-application-development.html"&gt;Ruby on Rails development&lt;/a&gt;&lt;/b&gt; is getting much deserved mileage from people. It is lowering the entry barriers for other programming languages. If you would like to learn more about Ruby on Rails development contact an expert Ruby on Rails (RoR) developer now at: &lt;a href="mailto:info@softwebsolutions.com"&gt;info@softwebsolutions.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-8449868280804039347?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8449868280804039347?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8449868280804039347?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/12/3-effective-reasons-for-popularity-of.html" title="3 Effective Reasons for the Popularity of Ruby on Rails Development" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;DkMMSHkyfCp7ImA9WxFaF00.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-2295833781709947319</id><published>2010-07-21T02:26:00.000-07:00</published><updated>2010-07-21T02:28:09.794-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-21T02:28:09.794-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="Ruby on Rails Development Services" /><category scheme="http://www.blogger.com/atom/ns#" term="ror application development" /><title>Interesting Facts on Ruby on Rails</title><content type="html">Ruby on Rails (RoR) is a programming language used to build interactive and engaging web applications. Rails is an open source web application framework written in Ruby language. It slashes development time and increases the simplicity of coding for dynamic web sites. RoR is a widely used programming language capable of providing rich user experience. We’ve listed down some interesting facts about RoR that you may want to know:&lt;br /&gt;
&lt;br /&gt;
• David Heinemeier Hansson, a Danish programmer, developed Ruby on Rails in 2003. According to Wikipedia data, Google and O’ Reilly awarded him with the Hacker of the Year award in 2005.&lt;br /&gt;
&lt;br /&gt;
• He has over 1400 contributors in the rails core team responsible for extending features in the platform&lt;br /&gt;
&lt;br /&gt;
• RoR is an agile framework used in majority of the web solutions. Website development is faster using the RoR solution.&lt;br /&gt;
&lt;br /&gt;
• Important websites that use Ruby on Rails are Crunchbase, BaseCamp, Hulu, SpiceWorks, Penny Arcade, Twitter, Xing, and Yellowpages.com.&lt;br /&gt;
&lt;br /&gt;
• The language has thousands of plugins that can be used to create unique functionality within applications. &lt;br /&gt;
&lt;br /&gt;
Ruby on Rails has grown tremendously as it follows the Agile development cycle.&amp;nbsp; It provides scaffolding, which can automatically construct some of the models needed for a basic website. In addition, it includes advanced application development principles such as Convention over Configuration (CoC) and Don't Repeat Yourself (DRY). &lt;br /&gt;
&lt;br /&gt;
At Softweb Solutions, we have a team of Ruby on Rails developers’ proficient in providing &lt;b&gt;&lt;a href="http://opensource.softwebsolutions.com/ruby-on-rails-development.html"&gt;Ruby on Rails Development Services&lt;/a&gt;&lt;/b&gt;. A broad spectrum of SEO services can be used along with RoR to improve website visibility in major search engines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-2295833781709947319?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2295833781709947319?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2295833781709947319?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/07/ruby-on-rails-ror-is-programming.html" title="Interesting Facts on Ruby on Rails" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;A04BRXg9fCp7ImA9WxFUFE4.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-6686417098142035233</id><published>2010-06-22T22:49:00.000-07:00</published><updated>2010-06-24T21:25:54.664-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-24T21:25:54.664-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="Agile Web Development" /><category scheme="http://www.blogger.com/atom/ns#" term="ruby rapid application development" /><title>Ruby on Rails 3 All Set for Launch</title><content type="html">Ruby on Rails united with Merb Ruby frameworks to jointly participate in the development of Ruby on Rails 3 (RoR 3.0). After 18 months of collaboration which began since 2008, the open source development framework is finally close to the release. RoR 3.0 involves better modularity and robust features compared to its earlier version. &lt;br /&gt;
&lt;br /&gt;
Yehuda Katz, a member of the Ruby on Rails core team and Rails framework architect, stated that they spent almost a year and a half refactoring so there is massive internal improvement. By refactoring, he clarifies that changes are made to the code with altering the functionality. Furthermore, he explains the new framework features better dependency management and API improvements. &lt;br /&gt;
&lt;br /&gt;
New Features Introduced in Rails 3.0&lt;br /&gt;
• Dependency Management – Earlier when Rails faced issues related to dependency management, it elbowed them aside by reducing the number of dependencies. Now, as a result of coalition with Merb, dependency management is well aligned.&lt;br /&gt;
• Modularity – According to Katz, in the earlier version of Rails, “Rails would own a given application process on a global settings basis.” In Rails 3, the modularity and scalability of the framework is improved as the team has tried to reduce global states inside Rails.&lt;br /&gt;
• Improved Router – The Rails 3 router will allow developers control where inbound request go with a higher precision level compared to Rails 2. &lt;br /&gt;
&lt;br /&gt;
For more details on Ruby on Rails 3.0, here’s the &lt;a href="http://www.linuxplanet.com/linuxplanet/reports/7095/1/" target="_blank"&gt;link&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
At Softweb Solutions we offer innovative &lt;a href="http://opensource.softwebsolutions.com/ruby-on-rails-development.html" target=_blank&gt;Ruby on Rails Web Application Development Services&lt;/a&gt; with a group of dedicated RoR developers. In addition, we provide a spectrum of SEO techniques to improve your website's visibility in all the major search engines.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-6686417098142035233?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6686417098142035233?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6686417098142035233?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/06/ruby-on-rails-3-all-set-for-launch.html" title="Ruby on Rails 3 All Set for Launch" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;C0UHRXo9cCp7ImA9WxFXEko.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-7154688674005687058</id><published>2010-05-19T04:25:00.000-07:00</published><updated>2010-05-19T05:13:54.468-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T05:13:54.468-07:00</app:edited><title>Generate CSV File in Rails</title><content type="html">&lt;p&gt;If You want to   generate generalize function to generate  csv  file then keep  export _to_csv   function in application.rb file&lt;br /&gt;&lt;br /&gt; def export_to_csv(data)&lt;br /&gt;&lt;br /&gt;    records = data&lt;br /&gt;&lt;br /&gt;     cls =  records[0].class&lt;br /&gt;&lt;br /&gt;     data =  ""&lt;br /&gt;&lt;br /&gt;     data &amp;lt;&amp;lt; cls.csv_header  &amp;lt;&amp;lt; "\r\n"&lt;br /&gt;&lt;br /&gt;     records.each do  |inst|&lt;br /&gt;&lt;br /&gt;       data &amp;lt;&amp;lt;  inst.to_csv &amp;lt;&amp;lt; "\r\n"&lt;br /&gt;&lt;br /&gt;     end&lt;br /&gt;&lt;br /&gt;     send_data data,  :type =&amp;gt; 'text/csv', :filename =&amp;gt; cls.name.pluralize + '.csv'&lt;br /&gt;&lt;br /&gt;   end&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Controller&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; def export_csv&lt;br /&gt;&lt;br /&gt;     data = Model.find(:all)&lt;br /&gt;&lt;br /&gt;     export_to_csv(data)&lt;br /&gt;&lt;br /&gt;  end&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Model.rb &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; def self.csv_header&lt;br /&gt;&lt;br /&gt;     #Column Header&lt;br /&gt;&lt;br /&gt;      "ID,Name,Controller Action ,Action Label,Is controller"&lt;br /&gt;&lt;br /&gt;   end&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&lt;br /&gt;  def to_csv&lt;br /&gt;&lt;br /&gt; #Field_name&lt;br /&gt;&lt;br /&gt;     id.to_s &amp;lt;&amp;lt;  "," &amp;lt;&amp;lt; name &amp;lt;&amp;lt; "," &amp;lt;&amp;lt; controller_action  &amp;lt;&amp;lt; "," &amp;lt;&amp;lt; action_label &amp;lt;&amp;lt;&lt;br /&gt;&lt;br /&gt;       ","  &amp;lt;&amp;lt; is_controller.to_s&lt;br /&gt;&lt;br /&gt;   End&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;View &lt;/strong&gt;&lt;br /&gt;&lt;br /&gt; &amp;lt;% form_tag({:action =&amp;gt;  :export_csv }) do -%&amp;gt;&lt;br /&gt;&lt;br /&gt;     &amp;lt;%= submit_tag  "Export To CSV",:class =&amp;gt;'button-1' -%&amp;gt;&lt;br /&gt;&lt;br /&gt;   &amp;lt;% end -%&amp;gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-7154688674005687058?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/7154688674005687058?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/7154688674005687058?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/05/generate-csv-file-in-rails.html" title="Generate CSV File in Rails" /><author><name>dimple</name><uri>http://www.blogger.com/profile/15906827143128823755</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></entry><entry gd:etag="W/&quot;DUcCQX09eyp7ImA9WxFXEEU.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-3674072050631715879</id><published>2010-05-17T01:28:00.000-07:00</published><updated>2010-05-17T02:04:20.363-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-17T02:04:20.363-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="Rubi On Rails" /><category scheme="http://www.blogger.com/atom/ns#" term="JRubi 1.5" /><title>JRuby Community Unveils JRuby 1.5</title><content type="html">The JRuby Community has unwrapped JRuby 1.5, the latest upgrade of its &lt;a href="http://java.softwebsolutions.com/"&gt;Java implementation&lt;/a&gt; of the Ruby language, on 12th May, 2010. The release comes after one of the longest development cycles in the Open Source community.&lt;br /&gt;
&lt;br /&gt;
The JRuby Community stated in their blog that it took them 5 months to make the changes and implement the bug fixes in the latest release. The bug fixes mainly comprised of small alterations that address compatibility issues for individual Ruby methods. According to the community, JRuby 1.5 includes 1,300 revisions and 432 bug fixes. It comes with a new native access framework which leads to improved performance and better FFI (Foreign Function Interface) support. Users will also be happy to find better support for Windows and multiple performance improvements such as improved accuracy, memory and speed in Ruby-to-Java calling. &lt;br /&gt;
&lt;br /&gt;
Additionally, the latest release sees improvements in the Ruby 1.8.7 standard library and the ruby-debug tool is added by default. Rails 3 has seen the addition of multiple bug fixes, which includes reduced memory usage for Java class metadata, faster loading of Java classes, improved start-up times, and jar-in-jar support in the classloader.&lt;br /&gt;
&lt;br /&gt;
According to research firm Gartner, ‘JRuby has the fastest Ruby interpreter on the market’. The reasons are that it runs the complete Ruby test suite, it runs on JVMs (Java Virtual Machines), and provides access to Java libraries. The analyst also mentions that JRuby is beneficial for enterprises that are planning to move to some dynamic languages. &lt;br /&gt;
&lt;br /&gt;
For developers and project managers within non IT companies, the technology upgrade will translate into higher productivity, faster application development, and that too comes along with saving on existing Java investments. This makes the latest JRuby release an important event for the enterprises and their improved performance.&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&lt;br /&gt;
If you are looking for more information on JRuby or &lt;a href="http://ror.softwebsolutions.com/"&gt;Ruby on Rails&lt;/a&gt;, contact us at &lt;a href="mailto:info@softwebsolutions.com"&gt;info@softwebsolutions.com&lt;/a&gt;. &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-3674072050631715879?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/3674072050631715879?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/3674072050631715879?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/05/jruby-community-unveils-jruby-15.html" title="JRuby Community Unveils JRuby 1.5" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;CUQERnw7eyp7ImA9WxFTFEs.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-6037074958924890902</id><published>2010-04-05T03:28:00.000-07:00</published><updated>2010-04-05T03:28:27.203-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-05T03:28:27.203-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="ROR 2.0" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR developers Chicago" /><category scheme="http://www.blogger.com/atom/ns#" term="ror application development" /><title>a3 Reasons to Select Ruby on Rails 2.0 to Achieve your Business Goals</title><content type="html">&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;&lt;a href="http://www.softwebsolutions.com/ruby-on-rails-application-development.html"&gt;&lt;span class="Apple-style-span" style="font-weight: bold;"&gt;Ruby on Rails&lt;/span&gt;&lt;/a&gt; 2.0 (ROR 2.0), a programming language combined with a web application framework, was unveiled recently. It is an open source web project that supports Agile development methods and takes programming to the next level. In this blog we will talk about three reasons why Ruby on Rails 2.0 translates into business benefits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Time to market is faster&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Time to market is a key factor when it comes to gaining competitive edge. Compared to .NET or J2EE, the development of rich internet applications in ROR 2.0 takes lesser time. The quicker time to market combined with improved web applications and enhanced user experience makes ROR 2.0 a perfect fit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Lowers costs&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Development costs not only include application development time but also expense comprising software, support, testing, installation, customization, and many more. ROR 2.0 has a robust framework that addresses these concerns. It significantly lowers the time and efforts required to create, maintain or update web applications thereby saving operational costs. Being an open source framework, organizations save on licensing costs as well as upgradation fees. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Improved Quality&lt;span class="Apple-style-span" style="font-weight: normal;"&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;ROR 2.0 offers superior software quality as it is grounded on test driven development and automation. Developers can easily prevent errors because of continuous testing and iterations. In addition, extensive unit testing support makes it possible for developers to test changes instantaneously. These characteristics lower complexity of developing web applications and allow developers to focus on application logic improving the quality of software applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="MsoNoSpacing" style="text-align: justify;"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt;"&gt;Thus, ROR 2.0 gives organizations ample reasons to select it for achieving their business goals. It allows radical productivity improvements and enables developers to provide enhanced performance. Please share your own opinions on ROR 2.0 in the comments section below.&lt;span style="mso-spacerun: yes;"&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-6037074958924890902?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6037074958924890902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6037074958924890902?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2010/04/a3-reasons-to-select-ruby-on-rails-20.html" title="a3 Reasons to Select Ruby on Rails 2.0 to Achieve your Business Goals" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;D0AGRHg-fip7ImA9WxBTEUU.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-2107467127104714131</id><published>2009-12-03T04:20:00.001-08:00</published><updated>2009-12-07T03:35:25.656-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-07T03:35:25.656-08:00</app:edited><title>Delegation with Rails</title><content type="html">&lt;b&gt;Why delegation?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Before going to detail let me start with an example , we have a two models named User and profile having has-one association.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; has_one :profile &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class Profile &amp;lt; ActiveRecord::Base &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; belongs_to :user&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Suppose Profile have attributes like first_name, last_name, phone etc and @user is the instance of User class.now to find name or phone of an user we have two ways -&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1. Using dot-magic &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
FirstName = @user.profile.first_name&lt;br /&gt;
&lt;br /&gt;
This is simple but becomes bulky for long chain associated object.For example @user.sth.sth.sth.sth…some_attribute&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2. Using delegation&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Instead we can delegate desired attributes in User model. Here is the code to add&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; has_one :profile &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; [:first_name, :last_name, :phone, ...etc.].each {|attr| delegate attr, :to =&amp;gt; :profile}&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Lets see usage of delegation in depth&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Delegatation in Rails&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
In ruby on rails Delegation provide us a fine way over dot-magic. Using delegation it is easy to access associated object’s attributes. Delegation is a feature Rails introduced in it’s 2.2 version.The concept of delegation is to take some methods and send them off to another object to be processed.Delegate simply delegates a method to another class.This is useful if you have a lot of cases where you are referring to fields in associated classes.&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;&lt;strong&gt;Let me explain this with a brief example:&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
Suppose you have a User class for anyone registered on your site, and a Consumer class for those who have actually placed orders:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; belongs_to :consumer &lt;br /&gt;
end &lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class Consumer &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp; has_one :user &lt;br /&gt;
end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
As for now, if you are in a Consumer instance, you can get their User information doing @&lt;b&gt;consumer.user.name&lt;/b&gt;, or @&lt;b&gt;consumer.user.email&lt;/b&gt;. Delegation allows you to simplify this:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; belongs_to :consumer &lt;br /&gt;
end&lt;/i&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class Consumer &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp; has_one :user &lt;br /&gt;
&amp;nbsp; delegate :name,:email,:to =&amp;gt; :user &lt;br /&gt;
end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Now you can refer to @&lt;b&gt;consumer.name&lt;/b&gt; and @&lt;b&gt;consumer.email&lt;/b&gt; to retrieve and set values for those attributes directly. &lt;br /&gt;
&lt;br /&gt;
This is all well and good if you can be sure that there will always be a user for any given consumer. If consumer’s user is nil and name is called, however, an exception will be raised (because nil.name is undefined). There’s a new feature in Rails 2.2 that relate to delegation and using a prefix for delegated methods also you can set default value by extending delegate method&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Delegate with default&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class Consumer &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp; has_one :user &lt;br /&gt;
&amp;nbsp; delegate :name,:to =&amp;gt; :user, :default =&amp;gt; "Sapna Prajapati"&lt;br /&gt;
end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Delegate with prefixes&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Delegate prefixes just appeared in edge Rails and will work in Rails 2.2. If you delegate behavior from one class to another, you can now specify a prefix that will be used to identify the delegated methods. For example:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; belongs_to :consumer &lt;br /&gt;
end&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;class Consumer &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; has_one :user &lt;br /&gt;
&amp;nbsp;&amp;nbsp; delegate :name,:email,:to =&amp;gt; :user ,prefix =&amp;gt; true&lt;br /&gt;
end&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
This will produce delegated methods @&lt;b&gt;consumer.user_name&lt;/b&gt; and @&lt;b&gt;consumer.user_email&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
The problem is if you refactor user or consumer , you’ll have to go back and fix all the places you did this access chaining as well. Means if you rename the user class, you’re almost always going to want to rename that prefix too.But delegates provide custom prefixes so you will end up to change.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Delegate with custom prefixes&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;class User &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; belongs_to :consumer &lt;br /&gt;
end&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;class Consumer &amp;lt; ActiveRecord::Base &lt;br /&gt;
&amp;nbsp;&amp;nbsp; has_one :user &lt;br /&gt;
&amp;nbsp;&amp;nbsp; delegate :name,:email,:to =&amp;gt; :user ,prefix =&amp;gt; :owner&lt;br /&gt;
end&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
This will produce delegated methods @&lt;b&gt;consumer.owner_name&lt;/b&gt; and &lt;b&gt;consumer.owner_email&lt;/b&gt;.&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-2107467127104714131?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2107467127104714131?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2107467127104714131?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/12/delegation-with-rails_03.html" title="Delegation with Rails" /><author><name>Sapna Prajapati</name><uri>http://www.blogger.com/profile/16169706763390326729</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></entry><entry gd:etag="W/&quot;D04ER3c4cSp7ImA9WxBTEUU.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-8630411949322376725</id><published>2009-10-14T19:47:00.000-07:00</published><updated>2009-12-07T03:38:26.939-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-07T03:38:26.939-08:00</app:edited><title>Rails Testing Process</title><content type="html">&lt;div style="color: blue;"&gt;&lt;i&gt;&lt;span style="font-size: x-large;"&gt;&lt;b&gt;Rails Testing&lt;/b&gt;&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;Types of testing in Rails&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;• Unit testing - Tests models&lt;br /&gt;
• Functional testing - Tests controllers&lt;br /&gt;
• Integration testing - Tests multiple controllers&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;Fixtures&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;• Textual representations of table data&lt;br /&gt;
• Is used to populate the database before testing&lt;br /&gt;
&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;Unit testing Class&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;• Subclass of ActiveSupport::TestCase class&lt;br /&gt;
&amp;gt; class PostTest &amp;lt; ActiveSupport::TestCase&lt;br /&gt;
• It requires test_helper&lt;br /&gt;
&amp;gt; require File.dirname(__FILE__) + '/../test_helper'&lt;br /&gt;
&lt;br /&gt;
• Test methods are prefixed with test_&lt;br /&gt;
&amp;gt; test_my_method&lt;br /&gt;
&lt;br /&gt;
• Within test methods, assert methods are used to test the result&lt;br /&gt;
&amp;gt; assert methods asserts that the result is true&lt;br /&gt;
&lt;br /&gt;
Example&lt;br /&gt;
&lt;i&gt;Fixture&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; one:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; id: 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; account_id: 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; name: "Test Post"&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;# Create test&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; def test_should_create_post&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; post = Post.new(:title=&amp;gt;"test title", :body=&amp;gt;"test body")&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;# make sure save is successful&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert post.save&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;# Find test&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; def test_should_find_post&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;# Get the id of the test data named as one&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; post_id = posts(:one).id&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;# make sure find is successful by checking an exception&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;assert_nothing_raised {Post.find(post_id)}&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Example – 2&lt;br /&gt;
&lt;i&gt;require File.dirname(__FILE__) + '/../test_helper'&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;class CompanyTest &amp;lt; Test::Unit::TestCase&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;fixtures :companies&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; # Replace this with your real tests.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def setup&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @companies_name = companies(:one)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; def test_failure_for_Retailer_duplicate&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_retailer = Retailer.create(:name =&amp;gt; 'Walmart')&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert !new_retailer.valid? &lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; def test_failure_for_supplier_duplicate&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_supplier = Supplier.create(:name =&amp;gt; 'Supplier 2')&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert !new_supplier.valid?&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; def test_company_name_required&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Test that the initial object is valid&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_valid(@companies_name)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Test that it becomes invalid by removing the name&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @companies_name.name = nil&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert !@companies_name.valid?&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert(@companies_name.errors.invalid?(:name), "Expected an error on validation")&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
&lt;div style="color: blue;"&gt;&lt;b&gt;Functional testing&lt;/b&gt;&lt;br /&gt;
&lt;/div&gt;Testing of controller methods&lt;br /&gt;
&lt;br /&gt;
Define fixtures value&lt;br /&gt;
&lt;i&gt;Fixture&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;user:&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; id: 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; first_name:&amp;nbsp; Admin&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp; last_name:&amp;nbsp; patel&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;class Admin::UserController&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;def test_show&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; get :show, :id =&amp;gt; 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # assert that the http response was 200&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_response :success&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # assert that the correct template was rendered&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_template 'admin/userr/show'&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # assert that the variable&amp;nbsp; @user was assigned&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert assigns( :user)&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # assert that the variable&amp;nbsp; @user was assigned with the correct values&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equal 'admin', assigns(:user).first_name&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_equal 'patel', assigns(:user).last_name&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; end&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
asserts that the response is one of the following types:&lt;br /&gt;
• :success -&amp;nbsp; Status code was 200.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Ex.&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;def test_should_get_index_successfully&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; get :index&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert_response :success&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: blue;"&gt;Assert Rendering of a Particular Template&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
The assert_template method makes it simple to test whether a particular template&amp;nbsp; was rendered by the action under test:&lt;br /&gt;
&lt;i&gt;def test_get_index_should_render_index_template&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; get :index&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert_template ‘index’&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
• :redirect Status code was in the 300–399 range.&lt;br /&gt;
&lt;i&gt;def test_accessing_protected_content_redirects_to_login&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; get :protected&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert_redirected_to :controller =&amp;gt; “session”, :action =&amp;gt; “new”&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: blue;"&gt;Assert Setting of Flash Messages&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
The flash convenience method gives you direct access to the flash hash of the user’s session.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;def test_accessing_protected_content_redirects_to_login&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; post :create ... # bad attributes&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert_equal “Problem saving. Check form and try again.”,&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; flash[:error]&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: blue;"&gt;Assert select&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;i&gt;def page_has_one_link_back_to_user_page&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; get :show, :id =&amp;gt; 1&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; assert_select “a[href=?]”,&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; url_for(:controller=&amp;gt;”user”, :id=&amp;gt;user_id),&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&amp;nbsp; :count =&amp;gt; 1, :text =&amp;gt; “Back to page”&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;end&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
• :missing Status code was 404.&lt;br /&gt;
• :error Status code was in the 500–599 range.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: blue;"&gt;integration&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;strong&gt;&lt;span style="color: blue;"&gt;Where exactly we should use Integration Testing ?&lt;/span&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Whenever we need to test a series of functionalities which belongs to more than one controller , we should go for Integration Testing and not the Functional one.&lt;br /&gt;
&lt;br /&gt;
Since the functional and unit testing are controller and model centric respectively, rails automatically creates the related functional and unit tests files. But as integrations testing is not confined in any criteria of a specific controller or model, we have to create the integrations file manually…Well, nothing is headache in rails. Its a simple pre-written script, all you need is to call that script with a name you like for whole story you wish to test in the integration test.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;require "#{File.dirname(__FILE__)}/../test_helper"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;s&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;class StoriesTest &amp;lt; ActionController::IntegrationTest&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;fixtures :accounts, :ledgers, :registers, :people&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp; def test_signup_new_person&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; go_to_login&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; go_to_signup&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; signup :name =&amp;gt; "Boby", :user_name =&amp;gt; "boby", :password =&amp;gt; "boby123"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp; end&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;private&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;def go_to_login&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get "/login"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_response :success&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_template "login/index"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;end&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;def go_to_signup&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; get "/signup"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_response :success&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_template "signup/index"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp; def signup(options)&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; post "/signup", options&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_response :redirect&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; follow_redirect!&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_response :success&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; assert_template "ledger/index"&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;&amp;nbsp;&amp;nbsp; end&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;span style="color: purple;"&gt;end&lt;/span&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="color: blue;"&gt;&lt;strong&gt;Target Description&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;
rake db:test:clone The clone task re-creates the test database from the current environment’s database schema. rake db:test: The clone_structure task re-creates the test database clone_structure using the structure of the development database. Similar to db:test:clone, except that it only copies over the schema of the database and not the contents. You shouldn’t need to invoke either of these tasks during everyday work, because they are dependencies of other testing tasks.rake db:test:prepare Prepares the test database for a test run and loads the current development schema into it. If you are running a test directly after having made schema changes to your database, you have to run this task first or your test will fail. rake db:test:purge Empties the test database.rake test The test target is marked as the default in standard Rails rakefiles, meaning you can run it simply by typing rake at the command line. It runs all tests in test/units and test/functionals folders.rake test:functionals Run only the tests in the test/functionals folder.rake test:integration Run only the tests in the test/integration folder. rake test:units Run only the tests in the test/units folder.rake test:recent Run only tests that have been modified in the last 10 minutes. rake test:uncommitted Run only the tests that are modified according to Subversion&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-8630411949322376725?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8630411949322376725?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8630411949322376725?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/12/rails-testing.html" title="Rails Testing Process" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;Ak8CSHY7eSp7ImA9WxNaGE4.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-2663022780695891625</id><published>2009-10-14T04:33:00.000-07:00</published><updated>2009-12-03T03:14:29.801-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-03T03:14:29.801-08:00</app:edited><title>ActiveResource with Rails</title><content type="html">&lt;b&gt;ActiveResource Overview&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ActiveResource is part of Rails 2.0. ActiveResource is a Rails library for the development of REST-based web service clients. ActiveResource is not a part of Rails 1.2 but is available via the development trunk and can be installed using svn, the subversion source control application:&lt;br /&gt;
&lt;br /&gt;
&amp;gt; cd ontrack/vendor&lt;br /&gt;
&amp;gt; mv rails rails-1.2&lt;br /&gt;
&amp;gt; svn co http://dev.rubyonrails.org/svn/rails/trunk rails&lt;br /&gt;
&lt;br /&gt;
It implements object-relational mapping for REST webservices to provide transparent proxying capabilities between a client (ActiveResource) and a RESTful service (which is provided by Simply RESTful routing in ActionController::Resources).&lt;br /&gt;
&lt;br /&gt;
Model classes are mapped to remote REST resources by Active Resource much the same way Active Record maps model classes to database tables. When a request is made to a remote resource, a REST XML request is generated transmitted, and the result received and serialized into a usable Ruby object.&lt;br /&gt;
There are two benefits to understanding Active Resource. The first benefit is the ability to quickly and easily create an Active Resource client for someone else's web service. The second benefit is being able to easily expose your own application to Active Resource clients. We're going to take a look under the hood at the communication between an Active Resource client and a Rails application in order to build a complete understanding of web services in Rails.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Configuration and Usage&lt;/b&gt;&lt;br /&gt;
&lt;span class="fullpost"&gt;&lt;br /&gt;
Putting ActiveResource to use is very similar to ActiveRecord. It’s as simple as creating a model class that inherits from ActiveResource::Base and providing a site class variable to it:&lt;br /&gt;
class User &amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = "http://softwebsolutions.com:3000/"&lt;br /&gt;
end&lt;br /&gt;
In the case where you already have an existing model with the same name as the desired RESTful resource you can set the element_name value.&lt;br /&gt;
class UserResource &amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = "http://softwebsolutions.com:3000/"&lt;br /&gt;
self.element_name = "user"&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Protocol&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Active Resource is built on a standard XML format for requesting and submitting resources over HTTP. It mirrors the RESTful routing built into ActionController but will also work with any other REST service that properly implements the protocol.&lt;br /&gt;
•    GET requests are used for finding and retrieving resources.&lt;br /&gt;
•    POST requests are used to create new resources.&lt;br /&gt;
•    PUT requests are used to update existing resources.&lt;br /&gt;
•    DELETE requests are used to delete resources.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Methods&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Now the User class is REST enabled and can invoke REST services very similarly to how ActiveRecord invokes lifecycle methods.&lt;br /&gt;
=== &lt;b&gt;Find&lt;/b&gt; ===&lt;br /&gt;
Find requests use the GET method and expect the XML form of whatever resource/resources is/are being requested.So, for a request for a single element, the XML of that item is expected in response:&lt;br /&gt;
&lt;br /&gt;
# Expects a response of&lt;br /&gt;
#&lt;br /&gt;
# &amp;lt; user &amp;gt;&lt;br /&gt;
&amp;lt; id  type="integer" &amp;gt;1&amp;lt; / id&amp;gt;&lt;br /&gt;
&amp;lt; attribute1 &amp;gt;value1&amp;lt; / attribute1 &amp;gt;&amp;lt; attribute2 &amp;gt;..&amp;lt; / attribute2 &amp;gt;&lt;br /&gt;
&amp;lt; / user &amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# for GET http://softwebsolutions.com:3000/user/1.xml&lt;br /&gt;
#&lt;br /&gt;
user = User.find(1)&lt;br /&gt;
&lt;br /&gt;
=== &lt;b&gt;Create&lt;/b&gt; ===&lt;br /&gt;
&lt;br /&gt;
Creating a new resource submits the XML form of the resource as the body of the request and expects a 'Location' header in the response with the RESTful URL location of the newly created resource.  The id of the newly created resource is parsed out of the Location response header and automatically set as the id of the ARes object.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt; user &amp;gt;&amp;lt; first &amp;gt;Ruby&amp;lt; / first &amp;gt;&amp;lt; / user &amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# is submitted as the body on&lt;br /&gt;
#&lt;br /&gt;
# POST http://softwebsolutions.com:3000/user.xml&lt;br /&gt;
#&lt;br /&gt;
# when save is called on a new User object.  An empty response is&lt;br /&gt;
# is expected with a 'Location' header value:&lt;br /&gt;
#&lt;br /&gt;
# Response (201): Location: http://softwebsolutions.com:3000/user/2&lt;br /&gt;
#&lt;br /&gt;
user = User.new(:first =&amp;gt; 'Ruby')&lt;br /&gt;
user.save  #=&amp;gt; true&lt;br /&gt;
user.id    #=&amp;gt; 2&lt;br /&gt;
&lt;br /&gt;
=== &lt;b&gt;Update&lt;/b&gt; ===&lt;br /&gt;
&lt;br /&gt;
'save' is also used to update an existing resource - and follows the same protocol as creating a resource with the exception that no response headers are needed - just an empty response when the update on the server side was successful.&lt;br /&gt;
&lt;br /&gt;
# &amp;lt; user &amp;gt;&amp;lt; first &amp;gt; Ruby &amp;lt; / first &amp;gt; &amp;lt; / user &amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# is submitted as the body on&lt;br /&gt;
#&lt;br /&gt;
# PUT http://softwebsolutions.com:3000/user/1.xml&lt;br /&gt;
#&lt;br /&gt;
# When save is called on an existing User object.  An empty response is expected&lt;br /&gt;
with code (204)&lt;br /&gt;
#&lt;br /&gt;
user = User.find(1)&lt;br /&gt;
user.first #=&amp;gt; 'Ruby'&lt;br /&gt;
user.first = 'Jhon'&lt;br /&gt;
user.save  #=&amp;gt; true&lt;br /&gt;
&lt;br /&gt;
=== &lt;b&gt;Delete&lt;/b&gt; ===&lt;br /&gt;
&lt;br /&gt;
Destruction of a resource can be invoked as a class and instance method of the resource.&lt;br /&gt;
&lt;br /&gt;
# A request is made to&lt;br /&gt;
#&lt;br /&gt;
# DELETE http://softwebsolutions.com:3000/user/1.xml&lt;br /&gt;
#&lt;br /&gt;
# for both of these forms.  An empty response with&lt;br /&gt;
# is expected with response code (200)&lt;br /&gt;
#&lt;br /&gt;
user = User.find(1)&lt;br /&gt;
user.destroy  #=&amp;gt; true&lt;br /&gt;
user.exists?  #=&amp;gt; false&lt;br /&gt;
&lt;br /&gt;
obj_user.delete(2)  #=&amp;gt; true&lt;br /&gt;
obj_user.exists?(2) #=&amp;gt; false&lt;br /&gt;
&lt;br /&gt;
As you can see, the methods are quite similar to Active Record‘s methods for dealing with database records. But rather than dealing directly with a database record, you‘re dealing with HTTP resources.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Custom Methods&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Since simple CRUD/lifecycle methods can‘t accomplish every task, Active Resource also supports defining your own custom REST methods. To invoke them, Active Resource provides the get, post, put and delete methods where you can specify a custom REST method name to invoke.&lt;br /&gt;
A module to support custom REST methods and sub-resources, allowing you to break out of the "default" REST methods with your own custom resource requests. For example, say you use Rails to expose a REST service and configure your routes with:&lt;br /&gt;
map.resources :user,:new =&amp;gt; { :register =&amp;gt; :post },&lt;br /&gt;
:member =&amp;gt; { :promote =&amp;gt; :put, :deactivate =&amp;gt; :delete }&lt;br /&gt;
:collection =&amp;gt; { :active =&amp;gt; :get }&lt;br /&gt;
&lt;br /&gt;
This route set creates routes for the following HTTP requests:&lt;br /&gt;
&lt;br /&gt;
POST /user/new/register.xml     # UserController.register&lt;br /&gt;
PUT   /user/1/promote.xml        # UserController.promote with :id =&amp;gt; 1&lt;br /&gt;
DELETE  /user/1/deactivate.xml     # UserController.deactivate with :id =&amp;gt; 1&lt;br /&gt;
GET  /user/active.xml           # UserController.active&lt;br /&gt;
Using this module, Active Resource can use these custom REST methods just like the standard methods.&lt;br /&gt;
class User &amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = "http://localhost:3000"&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
User.new(:name =&amp;gt; 'Ruby’).post(:register)&lt;br /&gt;
# POST /user/new/register.xml  # =&amp;gt; { :id =&amp;gt; 1, :name =&amp;gt; 'Ruby' }&lt;br /&gt;
&lt;br /&gt;
User.find(1).put(:promote, :position =&amp;gt; 'Manager')&lt;br /&gt;
# PUT /user/1/promote.xml&lt;br /&gt;
&lt;br /&gt;
User.find(1).delete(:deactivate)&lt;br /&gt;
# DELETE /user/1/deactivate.xml&lt;br /&gt;
&lt;br /&gt;
User.get(:active)&lt;br /&gt;
# GET /user/active.xml&lt;br /&gt;
# =&amp;gt; [{:id =&amp;gt; 1, :name =&amp;gt; 'Ruby'}, {:id =&amp;gt; 2, :name =&amp;gt; 'Jhon'}]&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Validation errors&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Active Resource supports validations on resources and will return errors if any these validations fail (e.g., "First name cannot be blank" and so on). These types of errors are denoted in the response by a response code of 422 and an XML representation of the validation errors. The save operation will then fail (with a false return value) and the validation errors can be accessed on the resource in question.&lt;br /&gt;
user = User.find(1)&lt;br /&gt;
user.first # =&amp;gt; ''&lt;br /&gt;
user.save  # =&amp;gt; false&lt;br /&gt;
&lt;br /&gt;
# When&lt;br /&gt;
# PUT http://softwebsolutions.com:3000/people/1.xml&lt;br /&gt;
# is requested with invalid values, the response is:&lt;br /&gt;
#&lt;br /&gt;
# Response (422):&lt;br /&gt;
# &lt;errors type="array"&gt;&lt;error&gt;First cannot be empty&lt;/error&gt;&lt;/errors&gt;&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
user.errors.invalid?(:first)  # =&amp;gt; true&lt;br /&gt;
user.errors.full_messages     # =&amp;gt; [‘first cannot be empty']&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Authentication&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Many REST APIs will require authentication, usually in the form of basic HTTP authentication. Authentication can be specified by:&lt;br /&gt;
putting the credentials in the URL for the site variable.&lt;br /&gt;
class User &amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = "http://admin:admin123@softwebsolutions.com:3000/"&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
Defining user and/or password variables&lt;br /&gt;
class User &amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = "http:// softwebsolutions.com:3000/"&lt;br /&gt;
self.user = "admin"&lt;br /&gt;
self.password = "admin123"&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Headers&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
ActiveResource allows for the setting of HTTP headers on each request too. This&lt;br /&gt;
can be done in two ways. The first is to set it as a variable:&lt;br /&gt;
&lt;br /&gt;
Class User&amp;lt; ActiveResource::Base&lt;br /&gt;
self.site = ‘http://localhost:3000’&lt;br /&gt;
@headers = { ‘x-flavor’ =&amp;gt; ‘softweb’ }&lt;br /&gt;
End&lt;br /&gt;
&lt;br /&gt;
This will cause every connection to the site to include the HTTP header:&lt;br /&gt;
HTTPX- FLAVOR: softweb. In our controller we could use the header value.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;ActiveResource Testing&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The HttpMock class makes it easy to test your Active Resource models by creating a set of mock responses to specific requests. To test your Active Resource model, you simply call the ActiveResource::HttpMock.respond_to method with an attached block.&lt;br /&gt;
Example&lt;br /&gt;
&lt;br /&gt;
def setup&lt;br /&gt;
@user  = { :id =&amp;gt; 1, :name =&amp;gt; "Ruby" }.to_xml(:root =&amp;gt; "user")&lt;br /&gt;
ActiveResource::HttpMock.respond_to do |mock|&lt;br /&gt;
mock.post   "/user.xml",   {}, @user, 201, "Location" =&amp;gt; "/user/1.xml"&lt;br /&gt;
mock.get    "/user/1.xml", {}, @user&lt;br /&gt;
mock.put    "/user/1.xml", {}, nil, 204&lt;br /&gt;
mock.delete "/user/1.xml", {}, nil, 200&lt;br /&gt;
end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
def test_get_user&lt;br /&gt;
user = User.find(1)&lt;br /&gt;
assert_equal "Ruby", user.name&lt;br /&gt;
end&lt;br /&gt;
&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-2663022780695891625?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2663022780695891625?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/2663022780695891625?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/10/activeresource-with-rails_1195.html" title="ActiveResource with Rails" /><author><name>Sapna Prajapati</name><uri>http://www.blogger.com/profile/16169706763390326729</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></entry><entry gd:etag="W/&quot;C0EHSHo9cSp7ImA9WxNWFUw.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-6589110847034083231</id><published>2009-10-14T01:48:00.000-07:00</published><updated>2009-10-14T02:13:59.469-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-10-14T02:13:59.469-07:00</app:edited><title>Multiple Database Connection in Ruby on Rails</title><content type="html">As you are aware with rails (opensource technology). So, you know that ActiveRecord allowed one connection to  database at a time.&lt;br /&gt;&lt;br /&gt;Ruby on Rails sets up the connection depending on your application’s database.yml file. In database.yml file you set up configration environmentwise.&lt;br /&gt;&lt;br /&gt;As I active record allow to access single database but you want to access more than one databases than it required to have multiple connection at a time. Now you think that how this possible. So Rails provides gem to implement you need. Follow the below steps:&lt;br /&gt;&lt;br /&gt;1. Install gem&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;sudo gem install magic_multi_connections&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. After installing gem there is one patch required in connect.rb&lt;br /&gt;replace&lt;br /&gt;&lt;br /&gt;raise NameError.new ( "uninitialized constant # (const_id)") unless&lt;br /&gt;target_class target_class&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight:bold;"&gt;return unless target_class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Now edit the config/database.yml file to create some more databases:&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;development:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;adapter: mysql&lt;br /&gt;encoding: utf8&lt;br /&gt;database: app_development&lt;br /&gt;username: tester&lt;br /&gt;password: testerpwd&lt;br /&gt;host: localhost&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;&lt;br /&gt;development_clonex:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;adapter: mysql&lt;br /&gt;encoding: utf8&lt;br /&gt;database: appx_development&lt;br /&gt;username: tester&lt;br /&gt;password: testerpwd&lt;br /&gt;host: localhost&lt;br /&gt;&lt;br /&gt;Default in rails main application database has read-write permission , and the other databases than you default application database have read-only pemission.&lt;br /&gt;&lt;br /&gt;4. Now in &lt;span style="font-weight:bold;"&gt;environment.rb &lt;/span&gt;,you have to add below code:&lt;br /&gt;&lt;br /&gt;require 'magic_multi_connections'&lt;br /&gt;connection_names = ActiveRecord::Base.configurations.keys.select do |name|&lt;br /&gt;name =~ /^#{ENV['RAILS_ENV']}_clone/&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;@@connection_pool = connection_names.map do |connection_name|&lt;br /&gt;Object.class_eval &lt;&lt;-EOS&lt;br /&gt;module #{connection_name.camelize}&lt;br /&gt;establish_connection :#{connection_name}&lt;br /&gt;end&lt;br /&gt;EOS&lt;br /&gt;&lt;br /&gt;connection_name.camelize.constantize&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;5. Next, you create same clone for databases which you have access by following below steps.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;cp&lt;/span&gt; config/environments/&lt;span style="font-weight:bold;"&gt;development.rb&lt;/span&gt; config/environments/&lt;span style="font-weight:bold;"&gt;development_clonex.rb&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;6. Now, You want to migrate the new databaseclone than only follow below step.&lt;br /&gt;&lt;br /&gt;rake db:migrate RAILS_ENV=development_clonex&lt;br /&gt;&lt;br /&gt;7. Lets check whether multiple pool created or not and we are able to access data from different database or not through console.&lt;br /&gt;$ ruby script/console&lt;br /&gt;&lt;br /&gt;· Check for connection pool&lt;br /&gt;&lt;br /&gt;&gt;&gt; @@connection_pool&lt;br /&gt;=&gt; [DevelopmentClonex]&lt;br /&gt;&lt;br /&gt;As we create clonex than it listed here. If you create more than one then you have array with multiple clone.&lt;br /&gt;&lt;br /&gt;· Now access table from other database by&lt;br /&gt;&gt;&gt; DevelopmentClonex::Model_name.model_methods&lt;br /&gt;&lt;br /&gt;Eg. @users = DevelopmentClonex::User.find(:all)&lt;br /&gt;    Puts @users.count&lt;br /&gt; Now use other features of multi_magic_connection.&lt;br /&gt;&lt;br /&gt;Hope this article will help you. If you have any suggestion or query than just leave comment here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-6589110847034083231?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6589110847034083231?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/6589110847034083231?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/10/multiple-database-connection-in-ruby-on.html" title="Multiple Database Connection in Ruby on Rails" /><author><name>priyanka pathak</name><uri>http://www.blogger.com/profile/08594839694742909815</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></entry><entry gd:etag="W/&quot;A0EASXg4fCp7ImA9WxNaGU8.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-5483818325770088656</id><published>2009-04-02T02:31:00.000-07:00</published><updated>2009-12-04T04:27:28.634-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-04T04:27:28.634-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="web designing and development services" /><category scheme="http://www.blogger.com/atom/ns#" term="custom software development" /><category scheme="http://www.blogger.com/atom/ns#" term="IT consultant Chicago" /><category scheme="http://www.blogger.com/atom/ns#" term="content management system" /><title>9th Anniversary of Softweb Solutions</title><content type="html">&lt;b&gt;Softweb Solutions peeping into past success and planning for future on its 9th anniversary &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Chicago, Illinois April 1, 2009 - Softweb Solutions, a leading &lt;a href="http://www.softwebsolutions.com/"&gt;IT Consultant&lt;/a&gt; is celebrating its 9th anniversary with great zeal. It is in short time span that Softweb has earned a remarkable name in the IT industry.&lt;br /&gt;
&lt;br /&gt;
“I am extremely happy with the success of Softweb. I want to offer my heartfelt thanks to all the employees who have satisfied the clients with their dedication and skills; and who have created a great foundation for company’s growth.” said Mr. &lt;b&gt;Ripal Vyas&lt;/b&gt;, CEO of Softweb. &lt;br /&gt;
&lt;br /&gt;
Since its inception, Softweb has been among the most dynamic names of the Software industry delivering &lt;a href="http://www.softwebsolutions.com/custom_application_development.html"&gt;Custom Software Development&lt;/a&gt;, &lt;a href="http://www.softwebsolutions.com/ebusiness_web_application.html"&gt;Website Design and Development&lt;/a&gt;, &lt;a href="http://www.softwebsolutions.com/ERP.html"&gt;ERP Implementation&lt;/a&gt;, &lt;a href="http://www.softwebsolutions.com/CRM.html"&gt;Customer Relationship Management&lt;/a&gt;, &lt;a href="http://www.softwebsolutions.com/CMS.html"&gt;Content Management System&lt;/a&gt; and &lt;a href="http://www.softwebsolutions.com/SEO.html"&gt;Search Engine Marketing&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
In its small journey Softweb has achieved few of the most prestigious titles; such as&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;• Microsoft Gold Certified Partner&lt;br /&gt;
• Microsoft Dynamics NAV Partner&lt;br /&gt;
• ISO 9001:2000&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Softweb also has worked for Fortune 500 clients and delivered excellent services satisfying all their needs. Having highly skilled resources across North America, Europe, and India, Softweb can take full advantage of multiple time zones to deliver cost effective services with quality and flexibility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-5483818325770088656?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/5483818325770088656?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/5483818325770088656?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/04/9th-anniversary-of-softweb-solutions.html" title="9th Anniversary of Softweb Solutions" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;A0YEQ3w4fCp7ImA9WxVUE0o.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-8803127286345041385</id><published>2009-03-18T05:21:00.000-07:00</published><updated>2009-03-18T05:25:02.234-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-18T05:25:02.234-07:00</app:edited><title>Ruby on Rails 2.3 Update Release</title><content type="html">Ruby on Rails community is adding value to the popular open source by releasing the latest update of it. They have released version 2.3 of Ruby on Rails that is one of the most popular open-source web development framework. The community had initially delivered the Release Candidate version so that the developers could test it before the final update.&lt;br /&gt;&lt;br /&gt;The new update has two major architectural changes: &lt;br /&gt;&lt;br /&gt;1. Complete integration of Rack modular web server interface&lt;br /&gt;2. Renewed support for Rails Engines&lt;br /&gt;&lt;br /&gt;The top features in the Rails update that would make it more popular are:&lt;br /&gt;&lt;br /&gt;• Templates: Allows new skeleton of Rails application to be built your way with your default stack of gems, configs, and more&lt;br /&gt;• Engines: Share reusable application pieces complete with routes that just work, models, view paths and the works&lt;br /&gt;• Rack: Rails now runs on Rack which gives you access to all the middleware goodness&lt;br /&gt;• Metal: Write super fast pieces of optimized logic that routes around Action Controller&lt;br /&gt;• Nested Forms: Deal with complex forms so much easier&lt;br /&gt;&lt;br /&gt;To know more about RoR and its benefits approach &lt;a href="http://www.softwebsolutions.com/ruby-on-rails-application-development.html"&gt;RoR Consultants Chicago&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-8803127286345041385?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8803127286345041385?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/8803127286345041385?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/03/ruby-on-rails-23-update-release.html" title="Ruby on Rails 2.3 Update Release" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;CkIDR307cSp7ImA9WxVWEkw.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-1437853616369349129</id><published>2009-02-21T01:50:00.000-08:00</published><updated>2009-02-21T02:02:56.309-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-21T02:02:56.309-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails consultants" /><category scheme="http://www.blogger.com/atom/ns#" term="RoR developers Chicago" /><category scheme="http://www.blogger.com/atom/ns#" term="ruby rapid application development" /><category scheme="http://www.blogger.com/atom/ns#" term="content management system using RoR" /><title>Principles like CoC and DRY making Ruby on Rails widely used....</title><content type="html">An increase of competition has made it important to serve the best applications in lesser time for IT companies. That is preferable for not only the programmers but also for the clients. And Rails give the scope to develop powerful applications in half of the time.&lt;br /&gt;&lt;br /&gt;As I had mentioned earlier ROR is an open source framework, consisting of Ruby, object oriented programming language and Rails, web development framework. Rails is remarkable for its extensive use of JavaScript libraries Prototype and Script.aculo.us for AJAX.&lt;br /&gt;&lt;br /&gt;Ruby on Rails emphasizes on two things:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Convention over Configuration (CoC): &lt;/strong&gt;CoC means the developer only needs to specify unconventional aspects of application which reduces the code and also repetition. &lt;br /&gt;&lt;br /&gt;For example, if there is a class Sale in the model, the corresponding table in the database is called sales by default. It is only if one deviates from this convention, such as calling the table "products sold” that the developer needs to write code regarding these names.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Don’t Repeat Yourself (DRY):&lt;/strong&gt; DRY means that the information is located in a single, unambiguous place. &lt;br /&gt;&lt;br /&gt;For example, using the ActiveRecord module of Rails, the developer does not need to specify database column names in class definitions. Instead, Ruby on Rails can retrieve this information from the database&lt;br /&gt;&lt;br /&gt;With the release of Rails version 2.2, it can now expand its market as it has been released with features like internationalization framework, thread safety, easy access to HTTP caching, compatibility with Ruby 1.9 , JRuby and new documentation.  &lt;br /&gt;&lt;br /&gt;Softweb Solutions with a team of dedicated ROR developers and programmers offers &lt;a href="http://www.softwebsolutions.com/ruby-on-rails-application-development.html"&gt;Ruby on Rails Web Development&lt;/a&gt; and &lt;a href="http://www.softwebsolutions.com/ruby-on-rails-development.html"&gt;RoR Content Management Services&lt;/a&gt; using the latest RoR 2.2 version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-1437853616369349129?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/1437853616369349129?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/1437853616369349129?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/02/principles-like-coc-and-dry-making-ruby.html" title="Principles like CoC and DRY making Ruby on Rails widely used...." /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;Dk4BRHc5eip7ImA9WxVXFE4.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-4075084727658788487</id><published>2009-02-12T02:22:00.000-08:00</published><updated>2009-02-12T02:35:55.922-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-12T02:35:55.922-08:00</app:edited><title>Improved Enterprise Applications with the latest technologies like Zend, jQuery and Flex</title><content type="html">With the collaboration of Adobe and Zend, now it has become easier to integrate the flexibility, productivity and reliability of Zend’s PHP with highly beneficial Adobe Flex and Flash that can serve the better user experience. The collaboration of Zend and Adobe can deliver the applications that combine PHP with Flex and so hand out highly engaging applications to both browser and desktop. Now it has become easier to deliver RIAs which are built using Flex and PHP that can enhance the employee productivity. jQuery can also be used with a combination of Zend Framework and PHP for superior web applications.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Zend Framework&lt;/strong&gt; is an open source PHP framework that has become famous for its support for fast and proficient creation of PHP applications. It enables the PHP developers to create powerful applications quickly and perhaps so it is recognized as one of the best frameworks in PHP. It follows the principle of “extreme simplicity” that can make it very easy for the developers to learn and use it. &lt;br /&gt;&lt;br /&gt;&lt;a href=" http://www.softwebsolutions.com/rich-internet-application-RIA.html"&gt;RIA (Rich Internet Application)&lt;/a&gt;, Flex is well-known for its features like rapid web development and more engaging user experience. And so the collaboration of Zend and Adobe together provide flexibility and reliability of PHP with the powerful user experience of Adobe Flex and Flash.&lt;br /&gt;&lt;br /&gt;For more information on how Zend, PHP and Flex, together could be harnessed for &lt;a href=" http://www.softwebsolutions.com/custom_application_development.html "&gt;Web Application Development&lt;/a&gt;, visit our corporate website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-4075084727658788487?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/4075084727658788487?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/4075084727658788487?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/02/improved-enterprise-applications-with.html" title="Improved Enterprise Applications with the latest technologies like Zend, jQuery and Flex" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry><entry gd:etag="W/&quot;DUQMSH06eCp7ImA9WxVQGU0.&quot;"><id>tag:blogger.com,1999:blog-6996737304921647429.post-1841633209360931595</id><published>2009-02-05T23:08:00.000-08:00</published><updated>2009-02-06T00:03:09.310-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-06T00:03:09.310-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ruby on rails web development" /><category scheme="http://www.blogger.com/atom/ns#" term="ror application development" /><title>Is a hyped phenomenon in the web world- open source Ruby on Rails worth?</title><content type="html">RoR is being highly discussed phrase in the realm of web development. Thinking why is it so? Ruby on Rails can be defined as a full stack framework which means that this framework covers everything which is needed to build a web application. It is an open source web application framework that can help you building web applications with an out of the box architecture. It is written in Ruby which is an object oriented language with clean syntax that can make programming enjoyable. Moreover Rails could help you creating a web application almost ten times faster than you do with regular java framework and that too without compromising with the quality. As it uses the MVC architecture pattern, it organizes the application programming that provides flexibility and simplicity. RoR is a great framework for them who have high timeliness and budget constraint.&lt;br /&gt; &lt;br /&gt;Softweb Solutions having a rich experience as an IT consultant has been delivering &lt;a href="http://www.softwebsolutions.com/ruby-on-rails-application-development.html"&gt;Agile Web Development with Rails&lt;/a&gt; to its global clients. Our team includes expert developers for &lt;strong&gt;RoR, Flex, Web 2.0, Agile Development, AJAX &lt;/strong&gt;and more. Our RoR team with great know how of Rails and jQuery can serve the bespoke solutions. Be it a simple corporate web site or an ecommerce portal or CMS, we can offer overwhelming web applications for all.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6996737304921647429-1841633209360931595?l=ruby-on-rails-web-development.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/1841633209360931595?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/6996737304921647429/posts/default/1841633209360931595?v=2" /><link rel="alternate" type="text/html" href="http://ruby-on-rails-web-development.blogspot.com/2009/02/is-hyped-phenomenon-in-web-world-open.html" title="Is a hyped phenomenon in the web world- open source Ruby on Rails worth?" /><author><name>Softweb Solutions</name><uri>http://www.blogger.com/profile/13377935586810494385</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="33" height="14" src="http://3.bp.blogspot.com/_xAA8PPivmLY/Ss3KcwvsO2I/AAAAAAAAAEs/HvM3YsmUxUI/s1600-R/3992073821_1047ea0bb0_o.png" /></author></entry></feed>

