<?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:blogger='http://schemas.google.com/blogger/2008' 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-860713881476357877</id><updated>2019-11-21T10:36:25.868+05:30</updated><category term="Programming"/><category term="PHP"/><category term="IT News"/><category term="Ruby On Rails"/><category term="Technologies"/><category term="HTML 5"/><category term="Javascript"/><category term="Internet"/><category term="Student"/><category term="Games"/><category term="Blogger"/><category term="C"/><category term="Engineering"/><category term="MongoDB"/><category term="Rubygems"/><category term="Solr Search"/><category term="CSI"/><category term="Make Money Online"/><category term="Mapbox.js"/><category term="React.js"/><category term="Social Networking"/><category term="API"/><category term="Analytics"/><category term="Buzz"/><category term="C++"/><category term="CSS"/><category term="Delhi Rape Case"/><category term="Entrepreneur"/><category term="Facebook"/><category term="Gate 2013"/><category term="Idea"/><category term="Invention"/><category term="Jobs"/><category term="PDF"/><category term="RSS Feeds"/><category term="Rails 6"/><category term="Rails Editor"/><category term="Sublime"/><category term="Video Tutorials"/><category term="XML"/><category term="angular.js"/><category term="backend"/><category term="front-end"/><category term="python"/><category term="react"/><title type='text'>Clecotech.com</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://blog.clecotech.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>123</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-3164546370309091283</id><published>2019-09-16T16:04:00.002+05:30</published><updated>2019-09-16T16:11:47.427+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="angular.js"/><category scheme="http://www.blogger.com/atom/ns#" term="backend"/><category scheme="http://www.blogger.com/atom/ns#" term="front-end"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="python"/><category scheme="http://www.blogger.com/atom/ns#" term="react"/><category scheme="http://www.blogger.com/atom/ns#" term="React.js"/><title type='text'>Why should we use Frontend with backend language?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;If you have a plan to make a web application having rich in functionality&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Then,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Instead of using single language i.e. &lt;a href=&quot;https://rubyonrails.org/&quot; target=&quot;_blank&quot;&gt;Ruby on Rails&lt;/a&gt;, &lt;a href=&quot;https://www.python.org/&quot; target=&quot;_blank&quot;&gt;Python&lt;/a&gt; Or &lt;a href=&quot;https://nodejs.org/en/&quot; target=&quot;_blank&quot;&gt;Node&lt;/a&gt;. I would rather suggest you to make backend in any language i.e.&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://rubyonrails.org/&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;Ruby on Rails&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.python.org/&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;Python&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;or&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://nodejs.org/en/&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;Node&lt;/a&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-5WJGt5TpG8E/XX9m149Zq-I/AAAAAAAAAqw/xVmzS_dA3Ykl-UIcoymxf3H5FJiPYEtmgCLcBGAsYHQ/s1600/reactjs-vs-nodejs-vs-vuejs-1.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;272&quot; data-original-width=&quot;669&quot; src=&quot;https://1.bp.blogspot.com/-5WJGt5TpG8E/XX9m149Zq-I/AAAAAAAAAqw/xVmzS_dA3Ykl-UIcoymxf3H5FJiPYEtmgCLcBGAsYHQ/s1600/reactjs-vs-nodejs-vs-vuejs-1.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;and for the front you can use any reliable front-end&amp;nbsp;language i.e. &lt;a href=&quot;https://reactjs.org/&quot; target=&quot;_blank&quot;&gt;React&lt;/a&gt;&amp;nbsp; (developed by Facebook) or &lt;a href=&quot;https://angularjs.org/&quot; target=&quot;_blank&quot;&gt;Angular.js&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;(developed by Google)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Using front-end we will get advantages as below.&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Fast&lt;/b&gt;: The application will be faster as backend will provide the JSON to the front-end. and for any updates certain part of the UI will be reloaded with limited data fetch only. As front-end will not request un-necessary data from Backend.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Smooth&lt;/b&gt;: Any front-end provides multiple animation effects. Where developer don&#39;t have to much care about that. When whole code don&#39;t reload it seems website is running much faster and smooth too.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Handling is Good&lt;/b&gt;: From developers prospective, Code handling is far better we write moduler code and provide only JSON response to the Front end.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;Easy to make Mobile application&lt;/b&gt;: When a Front-end language is used. Backend has API ready as JSON Response, so Half work of the Mobile API is already done. Now, if the same API is used for the Mobile version of the Application, It will work flawlessly.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;b&gt;In short,&lt;/b&gt; Using front-end is very good if you have medium to big software&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;application to be developed&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;. But, for very small softwares i.e. One page SPA, It is not relevant&amp;nbsp;to use front-end.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;In &lt;a href=&quot;https://www.clecotech.com/&quot; target=&quot;_blank&quot;&gt;ClecoTech International&lt;/a&gt;, We develop Small, medium and large level applications too. If you want to get the guidance regarding your application which language(s) you should prefer or which will be best technology&amp;nbsp;stack for your application, feel free to write about that in comment section. Or feel free to send a mail on mail(at)manishshrivastava.com or manish(&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;at)&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;clecotech.com.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Cheers,&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Happy Coding!&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/3164546370309091283/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/09/why-should-use-frontend-with-backend.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3164546370309091283'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3164546370309091283'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/09/why-should-use-frontend-with-backend.html' title='Why should we use Frontend with backend language?'/><author><name>Manish Shrivastava</name><uri>http://www.blogger.com/profile/10208528353672148565</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//2.bp.blogspot.com/-2trGB9P9mjY/XKXUPE9mriI/AAAAAAAAAlA/wR4ckoXLtRILuescg1IZPV3IOSCEX8fBgCK4BGAYYCw/s113/a.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-5WJGt5TpG8E/XX9m149Zq-I/AAAAAAAAAqw/xVmzS_dA3Ykl-UIcoymxf3H5FJiPYEtmgCLcBGAsYHQ/s72-c/reactjs-vs-nodejs-vs-vuejs-1.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-2126629912787078040</id><published>2019-05-09T17:57:00.003+05:30</published><updated>2019-05-09T18:08:13.515+05:30</updated><title type='text'>Make Social Network Site in Diaspora</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Today, My partner Ashish informed about diaspora this is a great tool to make a social networking website.&lt;br /&gt;&lt;br /&gt;So many things should have already done over here for basic social networking application i.e.&lt;br /&gt;Post #Hashtags, 🔄Reshare, @Mentions, Love.&lt;br /&gt;&lt;br /&gt;It is in Ruby on Rails and extremely useful.&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-ZgkErtx-RW0/XNQeW_7W6xI/AAAAAAAAAnQ/XHkokGVv9a4dj5V4z4sHrOFZe9zBgmduQCLcBGAs/s1600/Screenshot%2Bfrom%2B2019-05-09%2B18-03-19.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;673&quot; data-original-width=&quot;1179&quot; height=&quot;182&quot; src=&quot;https://4.bp.blogspot.com/-ZgkErtx-RW0/XNQeW_7W6xI/AAAAAAAAAnQ/XHkokGVv9a4dj5V4z4sHrOFZe9zBgmduQCLcBGAs/s320/Screenshot%2Bfrom%2B2019-05-09%2B18-03-19.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Please check this out: https://github.com/diaspora/diaspora.&lt;br /&gt;&lt;br /&gt;Let us know if anything.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/2126629912787078040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/05/make-social-network-site-in-diaspora.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2126629912787078040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2126629912787078040'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/05/make-social-network-site-in-diaspora.html' title='Make Social Network Site in Diaspora'/><author><name>Manish Shrivastava</name><uri>http://www.blogger.com/profile/10208528353672148565</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//2.bp.blogspot.com/-2trGB9P9mjY/XKXUPE9mriI/AAAAAAAAAlA/wR4ckoXLtRILuescg1IZPV3IOSCEX8fBgCK4BGAYYCw/s113/a.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-ZgkErtx-RW0/XNQeW_7W6xI/AAAAAAAAAnQ/XHkokGVv9a4dj5V4z4sHrOFZe9zBgmduQCLcBGAs/s72-c/Screenshot%2Bfrom%2B2019-05-09%2B18-03-19.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-349070940418527192</id><published>2019-05-09T14:30:00.000+05:30</published><updated>2019-05-09T14:38:25.167+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Entrepreneur"/><category scheme="http://www.blogger.com/atom/ns#" term="Idea"/><category scheme="http://www.blogger.com/atom/ns#" term="Invention"/><category scheme="http://www.blogger.com/atom/ns#" term="IT News"/><title type='text'>Turn Your Invention Ideas Into a Product in Simple Steps</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-FKO0n45MMVY/XNPphxipiNI/AAAAAAAAA_E/KGyqI6N2rJAZKdg_eIoNFJdg2G_LDodMgCLcBGAs/s1600/0.jpeg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1152&quot; height=&quot;400&quot; src=&quot;https://1.bp.blogspot.com/-FKO0n45MMVY/XNPphxipiNI/AAAAAAAAA_E/KGyqI6N2rJAZKdg_eIoNFJdg2G_LDodMgCLcBGAs/s640/0.jpeg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span id=&quot;docs-internal-guid-0a7e3ebb-7fff-b1b1-85e0-fbe09f01a927&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span id=&quot;docs-internal-guid-0a7e3ebb-7fff-b1b1-85e0-fbe09f01a927&quot;&gt;&lt;span id=&quot;docs-internal-guid-e7c742c6-7fff-e99b-2e9e-29aba2fe6f12&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Whether you want to produce and market your invention yourself or license it to another company, the only way to make money from your invention and to guarantee that no one will steal your idea is to file a patent with the U.S. Patent and Trademark Office.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span id=&quot;docs-internal-guid-0a7e3ebb-7fff-b1b1-85e0-fbe09f01a927&quot;&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 1: Document It&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Whether you want to produce and market your invention yourself or license it to another company, the only way to make money from your invention and to guarantee that no one will steal your idea is to file a patent with the U.S. Patent and Trademark Office.&lt;/span&gt;&lt;/div&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 1: Document It&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Simply having an &quot;idea&quot; is worthless--you need to have proof of when you came up with the invention ideas. Write down everything you can think of that relates to your invention, from what it is and how it works to how you&#39;ll make and market it. This is the first step to &lt;/span&gt;&lt;a href=&quot;https://www.entrepreneur.com/article/48746&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: #665ed0; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;patenting your idea&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; and keeping it from being stolen. You&#39;ve probably heard about the &quot;poor man&#39;s patent&quot;--writing your idea down and mailing it to yourself in a sealed envelope so you have dated proof of your invention&#39;s conception. This is unreliable and unlikely to hold up in court. Write your idea down in an inventor&#39;s journal and have it signed by a witness. This journal will become your bible throughout the patent process. An inventor&#39;s journal can by &lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-style: italic; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;any&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; bound notebook whose pages are numbered consecutively and can&#39;t be removed or reinserted. You can find specially designed inventor&#39;s journals at bookstores (try &lt;/span&gt;&lt;a href=&quot;http://www.nolo.com/product.cfm/ObjectID/759C18EB-2F81-4984-B73D2591246ECC59/310/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: #665ed0; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Nolo Press&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;or the &lt;/span&gt;&lt;a href=&quot;http://www.bookfactory.com/inventors_notebooks/inventors_notebooks.html&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;background-color: white; color: #665ed0; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Book Factory&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;to start), or you can save money and purchase a generic notebook anywhere they&#39;re sold, such as the grocery store, office supply store, stationary store, etc. Just make sure it meets the requirements above.&lt;/span&gt;&lt;/div&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 2: Research It&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;You will need to research your idea from a legal and business standpoint. Before you file a patent, you should:&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style=&quot;margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Complete an initial patent search. Just because you haven&#39;t seen your invention doesn&#39;t mean it doesn&#39;t already exist. Before you hire a patent attorney or agent, complete a rudimentary search for free at &lt;/span&gt;&lt;a href=&quot;http://www.uspto.gov/&quot; style=&quot;text-decoration-line: none;&quot;&gt;&lt;span style=&quot;color: #665ed0; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;www.uspto.gov&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; to make sure no one else has patented your idea. You should also complete a non-patent &quot;prior art&quot; search. If you find any sort of artwork or design related to your idea, you cannot patent it--regardless of whether a prior patent has been filed.&lt;/span&gt;&lt;span style=&quot;font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li dir=&quot;ltr&quot; style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; vertical-align: baseline; white-space: pre;&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Research your market. Sure, your brother thinks your idea for a new lawn sprinkler is a great idea, but that doesn&#39;t mean your neighbor would buy one. More than 95 percent of all patents never make money for the inventor. Before you invest too much time and money into patenting your invention, do some preliminary research of your target market. Is this something people will actually buy? Once you know there&#39;s a market, make sure your product can be manufactured and distributed at a low enough cost so that your retail price is reasonable. You can determine these costs by comparing those of similar products currently on the market. This will also help you size up your competition--which you will have, no matter how unique you think your invention is.&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 3: Make a Prototype&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;A prototype is a model of your invention that puts into practice all of the things you have written in your inventor&#39;s journal. This will demonstrate the design of your invention when you present it to potential lenders and licensees. &lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Do not file a patent before you have made a prototype&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;. You will almost always discover a flaw in your original design or think of a new feature you would like to add. If you patent your idea before you work out these kinks, it will be too late to include them in the patent and you will risk losing the patent rights of the new design to someone else.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Here are some general rules of thumb when prototyping your invention:&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1. Begin with a drawing. Before you begin the prototyping phase, sketch out all of your ideas into your inventor&#39;s journal.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2. Create a concept mockup out of any material that will allow you to create a 3-D model of your design.&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3. Once you&#39;re satisfied with the mockup, create a full-working model of your idea. There are many books and kits that can help you create prototypes. If your invention is something that will cost a lot of money or is unreasonable to prototype (like an oil refinery process or a new pharmaceutical drug), consider using a computer-animated virtual prototype.&lt;/span&gt;&lt;/div&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 4: File a Patent&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Now that you have all of the kinks worked out of your design, it&#39;s finally time to file a patent. There are two main patents you will have to choose from: a utility patent (for new processes or machines) or a design patent (for manufacturing new, nonobvious ornamental designs). You can write the patent and fill out the application yourself, but do &lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;not&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; file it yourself until you have had a skilled patent professional look it over first. If the invention is really valuable, someone &lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;will&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; infringe on it. If you do not have a strong patent written by a patent attorney or agent, you will be pulling your hair out later when a competitor finds a loophole that allows them to copy your idea. It&#39;s best to get the legal help now to avoid any legal problems in the future.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;When searching for a patent attorney or agent, remember one thing: If you see them advertised on TV, run away! Once you are far, far away, follow these steps to choosing the best patent professional:&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;1. Do your homework. Have your inventor&#39;s journal, prototype and notes with you. This will save them time, and you money. This will also help persuade them to work with you.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;2. Make sure they are registered with the U.S. Patent and Trademark Office.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;3. Ask them what their technical background is. If your invention is electronic, find a patent professional who is also an electrical engineer.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;4. Discuss fees. Keep your focus on smaller patent firms. They are less expensive and will work more closely with you. Agree to the estimated &lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;georgia&amp;quot;; font-size: 10.5pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;total&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt; cost before hiring your patent professional.&lt;/span&gt;&lt;/div&gt;&lt;h3 dir=&quot;ltr&quot; style=&quot;line-height: 1.68; margin-bottom: 4pt; margin-top: 14pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: &amp;quot;roboto&amp;quot;; font-size: 13pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Step 5: Market Your Invention&lt;/span&gt;&lt;/h3&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Now it&#39;s time to figure out how you&#39;re going to bring your product to market. Create a business plan: How will you get money? Where will you manufacture the product? How will you sell it? Now is a good time to decide if you will manufacture and sell the product yourself, or license it for sale through another company. When you license your product you will probably only receive two percent to five percent in royalty fees. This often scares away inventors who feel they deserve more. But consider the upside: You will not have the financial burden associated with maintaining a business. This could end up making you more money in the long run.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Following these five steps will ensure an easy road to patenting your invention. Just remember that an easy road doesn&#39;t necessarily mean a short one. From the time you conceive your idea to the time you see your product on the shelf is a very long process. Most inventions take years to come to fruition. Have patience and follow due diligence in your steps to patenting your invention and your years of hard work will finally pay off.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div dir=&quot;ltr&quot; style=&quot;line-height: 1.38; margin-bottom: 0pt; margin-top: 0pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;Reference : &lt;/span&gt;&lt;span style=&quot;background-color: white; color: #665ed0; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://www.entrepreneur.com/article/77962&quot; style=&quot;text-decoration-line: none;&quot;&gt;https://www.entrepreneur.com/article/77962&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background: 0px 0px rgb(255, 255, 255); border: 0px; box-sizing: inherit; color: rgba(0, 0, 0, 0.75); font-family: &amp;quot;Source Serif Pro&amp;quot;, serif; line-height: 3.2rem; margin-bottom: 3.2rem; margin-top: 3.2rem; outline: 0px; padding: 0px; text-align: left; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/349070940418527192/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/05/turn-your-invention-ideas-into-product.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/349070940418527192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/349070940418527192'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/05/turn-your-invention-ideas-into-product.html' title='Turn Your Invention Ideas Into a Product in Simple Steps'/><author><name>Ashish Prajapati</name><uri>http://www.blogger.com/profile/06706047745702471076</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-FKO0n45MMVY/XNPphxipiNI/AAAAAAAAA_E/KGyqI6N2rJAZKdg_eIoNFJdg2G_LDodMgCLcBGAs/s72-c/0.jpeg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-3956023393400121233</id><published>2019-05-09T11:07:00.000+05:30</published><updated>2019-05-09T14:33:26.010+05:30</updated><title type='text'>How to Speed Up Your Ruby on Rails App.</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-nKgsTqj5qzs/XNPs1RdBCZI/AAAAAAAAA_g/CvtNKhZItIoEInZStzoemCvqFYf8c-iuACLcBGAs/s1600/Ruby-on-Rails-Slider.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;317&quot; data-original-width=&quot;970&quot; height=&quot;208&quot; src=&quot;https://3.bp.blogspot.com/-nKgsTqj5qzs/XNPs1RdBCZI/AAAAAAAAA_g/CvtNKhZItIoEInZStzoemCvqFYf8c-iuACLcBGAs/s640/Ruby-on-Rails-Slider.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Ruby on rails is extremely popular as it speeds up development. This framework provides developers with a great collection of libraries. But just choosing Ruby on Rails doesn&#39;t means your project will succeed. To meet your users expectations, your Ruby on Rails should be fast.&lt;br /&gt;&lt;br /&gt;What does it mean?&lt;br /&gt;It means that over half of internet users expect that a page of website should be loads within seconds of time so they can use website efficiently and also it makes interests in them towards website or application. And around three quarters of web users won&#39;t return to a website if it takes longer than four seconds to load.&lt;br /&gt;&lt;span style=&quot;color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;b&gt;So here are some tips by which you can optimize your Application performance and can increase it as much as possible :-&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;* Eliminate the N+1 query problem&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&amp;nbsp; &amp;nbsp;One of the most frequent causes of slow performance is the N+1 query problem which is faced by many Ruby on Rails application. This is because of using unusual queries which is not needed most of the times. As the project becomes bigger, this problem only compounds. You may find out that your project is running lots of queries to achieve one result rather than running one query with many results.&lt;br /&gt;You need to cut down the independent queries to speedup the performance, So you can use eager loading associated relations. That means you should collect data with one query using eager loading.&lt;br /&gt;&lt;br /&gt;You can also use &lt;b&gt;Bullet gem &lt;/b&gt;which identifies and reports N+1 queries.&lt;br /&gt;&lt;span style=&quot;color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;* Use Gems and Plugins&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;Some gems and plugins solve common problems in Ruby on rails applications so developers don&#39;t have to create solutions from scratch. Gems and plugins handle issues connected with APIs, security, Active Record, authentication etc.&amp;nbsp; &lt;br /&gt;But don&#39;t forget that lavish using of gems and plugin also degrades the performance of your Ruby on Rails application. So be careful and use gems and plugins wisely in your application.&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;* Use Background Processing&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Background processes can calculate statistics, process video, send emails, run reports, and do lots of other things. These scheduled tasks run periodically during the day. Optimize these processes so that they are handled automatically. Using Background processes you can increase your application performance.&lt;br /&gt;There are tools created specially for Ruby on Rails framework that helps to manage background jobs e.g. Clockwork, Sidekiq etc.&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&lt;br /&gt;* Use a content delivery network(CDN)&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;Use a content delivery network(CDN) no matter which network or framework you use. CDNs are services that provide edge nodes around the world so that files are closer to a user&#39;s location. With CDNs, website content like JavaScript, CSS, HTML, images and videos load equally fast in different locations.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;* Use indexing to database&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&amp;nbsp; &lt;/span&gt;A lack of indexes on columns is one of the reasons why some queries take way longer to execute than they should. When creating a database column without indexes the database engine will check every record in the table until it finds a match. With indexes, the lookup will be a lot faster, as the engine will check only specific records.&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Indexes speedup the searches but degrades the update process so keep in mind while using indexes to your database table.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 18px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;* Choose your web hosting provider wisely&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;Web hosts offer important services like server management and backups. Choosing the right web hosting provider isn&#39;t only important for Ruby on Rails apps, as your web host influences the speed of any application. Different hosting packages provide different features.&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; color: #23252c; font-family: &amp;quot;brandontext&amp;quot; , &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 18px;&quot;&gt;&amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;That&#39;s all for today!, Happy coding :)&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/3956023393400121233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/05/how-to-speed-up-your-ruby-on-rails-app.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3956023393400121233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3956023393400121233'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/05/how-to-speed-up-your-ruby-on-rails-app.html' title='How to Speed Up Your Ruby on Rails App.'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-nKgsTqj5qzs/XNPs1RdBCZI/AAAAAAAAA_g/CvtNKhZItIoEInZStzoemCvqFYf8c-iuACLcBGAs/s72-c/Ruby-on-Rails-Slider.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-4417193934177621260</id><published>2019-05-08T16:53:00.000+05:30</published><updated>2019-05-09T14:37:53.408+05:30</updated><title type='text'>Prepend in Ruby: How is it useful ?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-8MxfdV1UHu4/XNPtyHnnaHI/AAAAAAAAA_s/YwcUlTR62jo2RmWLoqrKFGPu5G2zxyblACLcBGAs/s1600/Ruby-Programming-770x399.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;399&quot; data-original-width=&quot;770&quot; height=&quot;329&quot; src=&quot;https://4.bp.blogspot.com/-8MxfdV1UHu4/XNPtyHnnaHI/AAAAAAAAA_s/YwcUlTR62jo2RmWLoqrKFGPu5G2zxyblACLcBGAs/s640/Ruby-Programming-770x399.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;Modules are one of the most interesting features of Ruby. It is useful to avoid clashes with existing class, methods, etc. So that You can add(mix in) the functionality of modules into your classes.&amp;nbsp; You can use them to attach specific behaviour on your classes, and organise your code using composition rather than inheritance.&lt;br /&gt;&lt;br /&gt;Many Ruby developer are familiar with &quot;&lt;b&gt;extend&quot;&amp;nbsp;&lt;/b&gt;or &quot;&lt;b&gt;include&lt;/b&gt;&quot;, to understand how prepend works, it&#39;s important to know that how include/extend works in Ruby.&lt;br /&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: Menlo, Monaco, &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;module Xyz&lt;br /&gt;  def test_method&lt;br /&gt;    puts &quot;Hello from module.&quot;&lt;br /&gt;  end &lt;br /&gt;end   &lt;/pre&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; font-family: , &amp;quot;lucida grande&amp;quot; , &amp;quot;lucida sans unicode&amp;quot; , &amp;quot;lucida sans&amp;quot; , &amp;quot;geneva&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 26px; letter-spacing: -0.012em;&quot;&gt;Include&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; font-family: , &amp;quot;lucida grande&amp;quot; , &amp;quot;lucida sans unicode&amp;quot; , &amp;quot;lucida sans&amp;quot; , &amp;quot;geneva&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif; font-size: 26px; letter-spacing: -0.012em;&quot;&gt;&lt;/span&gt; &lt;br /&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;class Abc&lt;br /&gt;    include Xyz&lt;/pre&gt;It mixes in specified module methods as instance methods in the target class e.g. It adds the methods in Xyz to the Abc class as instance methods.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; font-size: 26px; letter-spacing: -0.312px;&quot;&gt;Extend&lt;/span&gt;&lt;br /&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;class Abc&lt;br /&gt;    extend Xyz&lt;/pre&gt;It mixes in specified module methods as class methods in the target class e.g. It adds the methods in Xyz to the Abc class as class methods.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;When you call a method on an object, the Ruby interpreter tries to find that method definition in its class, if it doesn&#39;t find it, it checks the class it inherits from (superclass), and so on till it does. So when you use Include in a module, Ruby interpreter does is to inserts the included module right above the current class. This means that Xyz module is the superclass or parent class of Abc class.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; font-size: 26px; letter-spacing: -0.312px;&quot;&gt;Prepend&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white; font-size: 26px; letter-spacing: -0.312px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;But prepend is slightly different different from Include/Extend, it is just opposite of Include/Extend means it puts the prepended module below the current class. It means that Abc class is the superclass or parent class of Xyz module.&lt;br /&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;class Abc&lt;br /&gt;    prepend Xyz&lt;/pre&gt;&lt;br /&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-size: 26px; letter-spacing: -0.312px;&quot;&gt;How is it useful ?&lt;/span&gt;&lt;/h4&gt;&lt;div&gt;Suppose you stuck in a situation that you have a number of classes which contain&amp;nbsp; method name &quot;test_method&quot; which contain code and some lines of code are similar in&amp;nbsp; all &quot;test_methods&quot; of all classes which you want to execute first and after you want to execute your code then you can do something like below. Here we define module name &quot;Xyz&quot; which have method &quot;test_method&quot; which print statement &quot;Hello from module&quot; and then it call super. Now prepend this module in any class where you want to use this feature. It means when you prepend &quot;Xyz&quot; module in your classes then firstly it will print the statement &quot;Hello from module&quot; and then by super it will invoke the same method name &quot;test_method&quot; in his superclass or parent class and will execute your line of codes e.g. &quot;Hello from classes&quot; after &quot;Hello from module&quot;.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;module Xyz&lt;br /&gt;  def test_method&lt;br /&gt;    puts &quot;Hello from module&quot;&lt;br /&gt;    super&lt;br /&gt;  end &lt;br /&gt;end &lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background: rgba(0, 0, 0, 0.05); color: rgba(0, 0, 0, 0.84); font-family: menlo, monaco, &amp;quot;courier new&amp;quot;, courier, monospace; font-size: 16px; margin-top: 43px; overflow: auto; padding: 20px; white-space: pre-wrap;&quot;&gt;class Abc&lt;br /&gt;  prepend Xyz  &lt;br /&gt;&lt;br /&gt;  def test_method&lt;br /&gt;    puts &quot;Hello from classes&quot;&lt;br /&gt;    &lt;br /&gt;    OR&lt;br /&gt;&lt;br /&gt;    //your code&lt;br /&gt;&lt;br /&gt;  end &lt;br /&gt;end &lt;/pre&gt;&lt;pre class=&quot;graf graf--pre graf-after--p&quot; id=&quot;e2f7&quot; name=&quot;e2f7&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; margin-top: 43px; overflow: auto; padding: 20px;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;menlo&amp;quot; , &amp;quot;monaco&amp;quot; , &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 16px; white-space: pre-wrap;&quot;&gt;That&#39;s all for today!, Happy coding :)&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/4417193934177621260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/05/prepend-in-ruby-how-is-it-useful.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/4417193934177621260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/4417193934177621260'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/05/prepend-in-ruby-how-is-it-useful.html' title='Prepend in Ruby: How is it useful ?'/><author><name>Anonymous</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/blank.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-8MxfdV1UHu4/XNPtyHnnaHI/AAAAAAAAA_s/YwcUlTR62jo2RmWLoqrKFGPu5G2zxyblACLcBGAs/s72-c/Ruby-Programming-770x399.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-1218736332898457781</id><published>2019-04-04T15:55:00.000+05:30</published><updated>2019-05-09T14:31:29.551+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Blogger"/><category scheme="http://www.blogger.com/atom/ns#" term="IT News"/><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Rails 6"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Rubygems"/><title type='text'>Start a project in Rails 6</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-v0MUglUYvj4/XNPsXlTvUTI/AAAAAAAAA_Y/wYw2Ssp9kZIScNF-0jGzpEtGhfTBD7zEwCLcBGAs/s1600/rubyonrails.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;320&quot; data-original-width=&quot;640&quot; height=&quot;320&quot; src=&quot;https://2.bp.blogspot.com/-v0MUglUYvj4/XNPsXlTvUTI/AAAAAAAAA_Y/wYw2Ssp9kZIScNF-0jGzpEtGhfTBD7zEwCLcBGAs/s640/rubyonrails.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Rails 6 (beta 3) is out and many clients are asking to upgrade to the latest version. Remember, Rails 6 is still in it&#39;s beta version. If you start a project, I would recommend to use stable version of rails i.e. Rails 5.2.x.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;But If you want to start with Rails 6 then Rails 6 require Ruby version 2.5+.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;If you are using RVM check your ruby version is greater than or equals to 2.5.0 then you can install rails 6 by creating a folder (say folder name is clecotech), then go to that folder and create a Gemfile with writing source and gem rails using below command.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot; style=&quot;border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.3; margin: 0px 0px 5px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline; width: 676px;&quot;&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;$ mkdir clecotech&lt;br /&gt;$ cd clecotech&lt;br /&gt;$ echo &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; color: #7d2727; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;source &#39;https://rubygems.org&#39;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Gemfile&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;$ echo &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; color: #7d2727; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;gem &#39;rails&#39;, git: &#39;https://github.com/rails/rails.git&#39;&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; color: #2b91af; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Gemfile&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; color: #303336; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;$ bundle install&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;You will see below lines after running bundle install command:&lt;/div&gt;&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot; style=&quot;border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.3; margin: 0px 0px 5px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline; width: 676px;&quot;&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Fetching&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;//github.com/rails/rails.git&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Fetching&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; gem metadata &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; https&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;com&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;//rubygems.org/.........&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Resolving&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; dependencies&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Using&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; rake &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;12.3&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;After running bundle command run below command to create project files and folders&lt;/div&gt;&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot; style=&quot;border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.3; margin: 0px 0px 5px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline; width: 676px;&quot;&gt;&lt;br /&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;$ bundle &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;exec&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; rails &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;new&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;dev &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;--&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;force&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;       exist&lt;br /&gt;      create  README&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;md&lt;br /&gt;      create  &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Rakefile&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;      create  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;ruby&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;version&lt;br /&gt;      create  config&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;ru&lt;br /&gt;      create  &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;gitignore&lt;br /&gt;       force  &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Gemfile&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;         run  git init &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&quot;.&quot;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;After creating folders structures and configuration file you just have to start the rails server from the command below:&lt;/div&gt;&lt;div class=&quot;post-text&quot; itemprop=&quot;text&quot; style=&quot;border: 0px; box-sizing: inherit; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: 1.3; margin: 0px 0px 5px; overflow-wrap: break-word; padding: 0px; vertical-align: baseline; width: 676px;&quot;&gt;&lt;br /&gt;&lt;pre class=&quot;default prettyprint prettyprinted&quot; style=&quot;background-color: #eff0f1; border-radius: 3px; border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin-bottom: 1em; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: 12px 8px; vertical-align: baseline; width: auto;&quot;&gt;&lt;code style=&quot;border: 0px; box-sizing: inherit; font-family: Consolas, Menlo, Monaco, &amp;quot;Lucida Console&amp;quot;, &amp;quot;Liberation Mono&amp;quot;, &amp;quot;DejaVu Sans Mono&amp;quot;, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace, sans-serif; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;&quot;&gt;&lt;span style=&quot;color: #666666;&quot;&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;$ bundle &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;exec&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; rails server &lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;d&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Booting&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Puma&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Rails&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;6.0&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;0.alpha&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; application starting &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; development&lt;br /&gt;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;=&amp;gt;&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;typ&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Run&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;`rails server --help`&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; box-sizing: inherit; font-family: inherit; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; more startup options&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class=&quot;grid mb0 fw-wrap ai-start jc-end gs8 gsy&quot; style=&quot;align-items: flex-start !important; border: 0px; box-sizing: inherit; display: flex; flex-wrap: wrap !important; font-family: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-weight: inherit; justify-content: flex-end !important; line-height: inherit; margin-bottom: 0px !important; margin-left: 0px; margin-right: 0px; margin-top: -4px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;time datetime=&quot;2018-09-23T15:54:09&quot; itemprop=&quot;dateCreated&quot; style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #242729; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/time&gt;&lt;br /&gt;&lt;div class=&quot;grid--cell mr16&quot; style=&quot;background-color: white; border: 0px; box-sizing: inherit; color: #242729; flex: 1 1 100px; font-family: Arial, &amp;quot;Helvetica Neue&amp;quot;, Helvetica, sans-serif; font-stretch: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; line-height: inherit; margin: 4px 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;That&#39;s it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Your rails 6 project is started and running.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Let us know if you got any problem setting up rails 6 project or anything.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here in &lt;a href=&quot;https://clecotech.com/&quot; target=&quot;_blank&quot;&gt;ClecoTech&lt;/a&gt; we are the team of expert rails developers who can work on any version of Ruby on Rails. and we will love to help if you find any problem running the application.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Happy Coding :).&lt;br /&gt;&lt;br /&gt;More References:&lt;br /&gt;&lt;a href=&quot;https://edgeguides.rubyonrails.org/6_0_release_notes.html&quot; target=&quot;_blank&quot;&gt;Rails 6 release notes&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://edgeguides.rubyonrails.org/upgrading_ruby_on_rails.html#upgrading-from-rails-5-2-to-rails-6-0&quot; target=&quot;_blank&quot;&gt;Rails Upgrading Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/1218736332898457781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/04/start-project-in-rails-6.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1218736332898457781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1218736332898457781'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/04/start-project-in-rails-6.html' title='Start a project in Rails 6'/><author><name>Manish Shrivastava</name><uri>http://www.blogger.com/profile/10208528353672148565</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//2.bp.blogspot.com/-2trGB9P9mjY/XKXUPE9mriI/AAAAAAAAAlA/wR4ckoXLtRILuescg1IZPV3IOSCEX8fBgCK4BGAYYCw/s113/a.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-v0MUglUYvj4/XNPsXlTvUTI/AAAAAAAAA_Y/wYw2Ssp9kZIScNF-0jGzpEtGhfTBD7zEwCLcBGAs/s72-c/rubyonrails.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-6975192671786855130</id><published>2019-03-04T17:44:00.002+05:30</published><updated>2019-03-05T12:39:06.155+05:30</updated><title type='text'>What is Active Storage? and How to use Active Storage?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;As per the Rails guide documentations:&lt;br /&gt;&lt;br /&gt;&lt;blockquote class=&quot;tr_bq&quot; style=&quot;text-align: left;&quot;&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: helvetica neue, arial, helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; font-size: 14px;&quot;&gt;Active Storage facilitates uploading files to a cloud storage service like Amazon S3, Google Cloud Storage, or Microsoft Azure Storage and attaching those files to Active Record objects. It comes with a local disk-based service for development and testing and supports mirroring files to subordinate services for backups and migrations.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;br /&gt;So,&amp;nbsp;Active Storage basically allow user to upload attachments (i.e. Images) to the remote storage clouds and and save object of the file into Active Record.&lt;br /&gt;&lt;br /&gt;Earlier with Rails 3 and Rails 4, We had to upload the files using carrierwave gem. and With Rails 5.2&amp;nbsp; and after versions Rails has inbuilt feature for file uploading to cloud and save it&#39;s object in Active Record using Active Storage module.&lt;br /&gt;&lt;br /&gt;Which gem should be used for remote storage?&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-XT_oDTLcuLs/XH0HSrm9qrI/AAAAAAAAAjc/axeCED7ypY8raWuEinwV3ZxrO020vRgtACLcBGAs/s1600/oie_dFTrj0qm0qiF.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;450&quot; data-original-width=&quot;800&quot; height=&quot;360&quot; src=&quot;https://1.bp.blogspot.com/-XT_oDTLcuLs/XH0HSrm9qrI/AAAAAAAAAjc/axeCED7ypY8raWuEinwV3ZxrO020vRgtACLcBGAs/s640/oie_dFTrj0qm0qiF.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;For Amazone web services (S3), you should use below gem:&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;gem &lt;/code&gt;&lt;code class=&quot;ruby string&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(101, 136, 168) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-style: italic !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&quot;aws-sdk-s3&quot;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-color: transparent; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, require: &lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-color: transparent; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;false&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;For Azure&amp;nbsp;Cloud storage, you should use below gem:&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;gem &lt;/code&gt;&lt;code class=&quot;ruby string&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(101, 136, 168) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-style: italic !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&quot;azure-storage&quot;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, require: &lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;false&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp;For Google Cloud Storage, you should use below gem:&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;gem &lt;/code&gt;&lt;code class=&quot;ruby string&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(101, 136, 168) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-style: italic !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&quot;google-cloud-storage&quot;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;ruby string&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(101, 136, 168) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-style: italic !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&quot;~&amp;gt; 1.11&quot;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, require: &lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;false&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Configuration:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;To Store files locally&lt;br /&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/code&gt;&lt;br /&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;config.active_storage.service = &lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:local&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;To Store files locally&lt;br /&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/code&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;config.active_storage.service = &lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:amazon&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Use it as:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Upload file:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Using gems and configure that, You should use below lines to attache the avatar.&lt;br /&gt;&lt;br /&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #333333; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 14px; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background: none rgb(238, 238, 238) !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;user.avatar.attach(params[&lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:avatar&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;])&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;b&gt;Delete file:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: #eeeeee; color: #222222; font-family: &amp;quot;consolas&amp;quot; , &amp;quot;bitstream vera sans mono&amp;quot; , &amp;quot;courier new&amp;quot; , &amp;quot;courier&amp;quot; , monospace; font-size: 14px; white-space: pre-wrap;&quot;&gt;user.avatar.purge&lt;/span&gt;&lt;br /&gt;&lt;h4 id=&quot;has-many-attached&quot; style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 1.2857em; line-height: 1.2em; margin: 1.6667em 0px 0.3887em; outline: 0px; padding: 0px;&quot;&gt;&lt;code style=&quot;background: transparent; border: 0px; color: #333333; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 0px; text-decoration-line: none; white-space: pre-wrap;&quot;&gt;Using &lt;a class=&quot;anchorlink&quot; href=&quot;https://edgeguides.rubyonrails.org/active_storage_overview.html#has-many-attached&quot; style=&quot;background: transparent; border: 0px; color: #333333; font-size: 17.9998px; margin: 0px; outline: 0px; padding: 0px; text-decoration-line: none;&quot;&gt;has_many_attached&lt;/a&gt; macros&lt;/code&gt;&lt;/h4&gt;&lt;div style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 1.5em; outline: 0px; padding: 0px;&quot;&gt;The&amp;nbsp;&lt;code style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 0px; color: #222222; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 1px 3px; white-space: pre-wrap;&quot;&gt;has_many_attached&lt;/code&gt;&amp;nbsp;macro sets up a one-to-many relationship between records and files. Each record can have many files attached to it.&lt;/div&gt;&lt;div style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 1.5em; outline: 0px; padding: 0px;&quot;&gt;For example, suppose your application has a&amp;nbsp;&lt;code style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 0px; color: #222222; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 1px 3px; white-space: pre-wrap;&quot;&gt;Product&lt;/code&gt;&amp;nbsp;model. If you want each message to have many images, define the&amp;nbsp;&lt;code style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 0px; color: #222222; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 1px 3px; white-space: pre-wrap;&quot;&gt;Product&lt;/code&gt;&amp;nbsp;model like this:&lt;/div&gt;&lt;div class=&quot;code_container&quot; style=&quot;background: url(&amp;quot;../images/tab_grey.gif&amp;quot;) left top no-repeat rgb(238, 238, 238); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1.5em; outline: 0px; padding: 0.25em 1em 0.5em 48px;&quot;&gt;&lt;div style=&quot;background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;syntaxhighlighter nogutter  ruby&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace !important; font-size: 1em !important; margin: 1em 0px !important; outline: 0px; overflow: auto hidden !important; padding: 0px; position: relative !important; width: 568px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;Product &amp;lt; ApplicationRecord&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;has_many_attached &lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:images&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;end&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 1.5em; outline: 0px; padding: 0px;&quot;&gt;You can create a product with images:&lt;/div&gt;&lt;div class=&quot;code_container&quot; style=&quot;background: url(&amp;quot;../images/tab_grey.gif&amp;quot;) left top no-repeat rgb(238, 238, 238); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1.5em; outline: 0px; padding: 0.25em 1em 0.5em 48px;&quot;&gt;&lt;div style=&quot;background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;syntaxhighlighter nogutter  ruby&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace !important; font-size: 1em !important; margin: 1em 0px !important; outline: 0px; overflow: auto hidden !important; padding: 0px; position: relative !important; width: 568px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;class&lt;/code&gt; &lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;ProductsController &amp;lt; ApplicationController&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number2 index1 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;create&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number3 index2 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;product&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt; = Product.create!(product_params)&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number4 index3 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;redirect_to &lt;/code&gt;&lt;span style=&quot;color: #222222; font-size: 1em; white-space: pre-wrap;&quot;&gt;product&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;line number5 index4 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;end&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number6 index5 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;line number7 index6 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;private&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number8 index7 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;def&lt;/code&gt; &lt;span style=&quot;color: #222222; white-space: pre-wrap;&quot;&gt;product&lt;/span&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;_params&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number9 index8 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;params.require(&lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:&lt;/code&gt;&lt;span style=&quot;color: #222222; white-space: pre-wrap;&quot;&gt;product&lt;/span&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;).permit(&lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:title&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, &lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:content&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;, images: [])&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number10 index9 alt1&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby spaces&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: #222222; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/code&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;end&lt;/code&gt;&lt;/div&gt;&lt;div class=&quot;line number11 index10 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby keyword&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(100, 67, 77) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;end&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 1.5em; outline: 0px; padding: 0px;&quot;&gt;Call&amp;nbsp;&lt;code style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 0px; color: #222222; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 1px 3px; white-space: pre-wrap;&quot;&gt;images.attach&lt;/code&gt;&amp;nbsp;to add new images to an existing message:&lt;/div&gt;&lt;div class=&quot;code_container&quot; style=&quot;background: url(&amp;quot;../images/tab_grey.gif&amp;quot;) left top no-repeat rgb(238, 238, 238); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1.5em; outline: 0px; padding: 0.25em 1em 0.5em 48px;&quot;&gt;&lt;div style=&quot;background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;syntaxhighlighter nogutter  ruby&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace !important; font-size: 1em !important; margin: 1em 0px !important; outline: 0px; overflow: auto hidden !important; padding: 0px; position: relative !important; width: 568px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby variable bold&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;@&lt;/code&gt;&lt;span style=&quot;color: #222222; white-space: pre-wrap;&quot;&gt;product&lt;/span&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;.images.attach(params[&lt;/code&gt;&lt;code class=&quot;ruby color2&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;:images&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;])&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;background: rgb(255, 255, 255); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin-bottom: 1.5em; outline: 0px; padding: 0px;&quot;&gt;Call&amp;nbsp;&lt;code style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 0px; color: #222222; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace; font-size: 1em; line-height: 1.5; margin: 1.5em 0px; outline: 0px; overflow-wrap: break-word; overflow: auto; padding: 1px 3px; white-space: pre-wrap;&quot;&gt;images.attached?&lt;/code&gt;&amp;nbsp;to determine whether a particular message has any images:&lt;/div&gt;&lt;div class=&quot;code_container&quot; style=&quot;background: url(&amp;quot;../images/tab_grey.gif&amp;quot;) left top no-repeat rgb(238, 238, 238); border: 0px; color: #333333; font-family: Helvetica, Arial, sans-serif; font-size: 14px; margin: 0px 0px 1.5em; outline: 0px; padding: 0.25em 1em 0.5em 48px;&quot;&gt;&lt;div style=&quot;background: transparent; border: 0px; margin: 0px; outline: 0px; padding: 0px;&quot;&gt;&lt;div class=&quot;syntaxhighlighter nogutter  ruby&quot; style=&quot;background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; border: 0px; font-family: &amp;quot;Anonymous Pro&amp;quot;, Inconsolata, Menlo, Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, monospace !important; font-size: 1em !important; margin: 1em 0px !important; outline: 0px; overflow: auto hidden !important; padding: 0px; position: relative !important; width: 568px;&quot;&gt;&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border-spacing: 0px; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;tbody style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;tr style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;td class=&quot;code&quot; style=&quot;background: none !important; border-collapse: collapse; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: 568px;&quot;&gt;&lt;div class=&quot;container&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: relative !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important;&quot;&gt;&lt;div class=&quot;line number1 index0 alt2&quot; style=&quot;background-attachment: initial !important; background-clip: initial !important; background-image: none !important; background-origin: initial !important; background-position: initial !important; background-repeat: initial !important; background-size: initial !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; float: none !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow: visible !important; padding: 0px 1em 0px 0em !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre !important; width: auto !important;&quot;&gt;&lt;code class=&quot;ruby variable bold&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; font-weight: bold !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;@product&lt;/code&gt;&lt;code class=&quot;ruby plain&quot; style=&quot;background: none !important; border-radius: 0px !important; border: 0px !important; bottom: auto !important; box-sizing: content-box !important; color: rgb(34, 34, 34) !important; float: none !important; font-family: Consolas, &amp;quot;Bitstream Vera Sans Mono&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace !important; font-size: 1em !important; height: auto !important; left: auto !important; line-height: 1.25em !important; margin: 0px 0px 0.5px !important; min-height: auto !important; outline: 0px !important; overflow-wrap: break-word; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; white-space: pre-wrap; width: auto !important;&quot;&gt;.images.attached?&lt;/code&gt;&lt;/div&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://user-images.githubusercontent.com/5355/28694528-16e69d0c-72f8-11e7-91a7-c0b8cfc90391.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;399&quot; data-original-width=&quot;723&quot; height=&quot;176&quot; src=&quot;https://user-images.githubusercontent.com/5355/28694528-16e69d0c-72f8-11e7-91a7-c0b8cfc90391.gif&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;Ref: Rails Guide&lt;/div&gt;&lt;br /&gt;There are many other features included in it. Please go through the &lt;a href=&quot;https://edgeguides.rubyonrails.org/active_storage_overview.html&quot; target=&quot;_blank&quot;&gt;rails guide documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Overall, It&#39;s a great feature included in rails and was most awaited since Rails 3.&lt;br /&gt;&lt;br /&gt;For more information, Please visit:&amp;nbsp;https://edgeguides.rubyonrails.org/active_storage_overview.html &amp;nbsp;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/6975192671786855130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/03/what-is-active-storage-and-how-to-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6975192671786855130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6975192671786855130'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/03/what-is-active-storage-and-how-to-use.html' title='What is Active Storage? and How to use Active Storage?'/><author><name>Manish Shrivastava</name><uri>http://www.blogger.com/profile/10208528353672148565</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//2.bp.blogspot.com/-2trGB9P9mjY/XKXUPE9mriI/AAAAAAAAAlA/wR4ckoXLtRILuescg1IZPV3IOSCEX8fBgCK4BGAYYCw/s113/a.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-XT_oDTLcuLs/XH0HSrm9qrI/AAAAAAAAAjc/axeCED7ypY8raWuEinwV3ZxrO020vRgtACLcBGAs/s72-c/oie_dFTrj0qm0qiF.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-2694782817731427906</id><published>2019-02-27T20:06:00.002+05:30</published><updated>2019-02-28T13:54:31.272+05:30</updated><title type='text'>Will India and Pakistan war affect IT Sector in India?</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Currently,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/India&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;India&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;plays a very crucial&amp;nbsp;role in &lt;a href=&quot;https://en.wikipedia.org/wiki/Software_development&quot; target=&quot;_blank&quot;&gt;Software development&lt;/a&gt; industry around the World. Most of the Software&amp;nbsp;are outsourced&amp;nbsp;to India directly or indirectly.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;It is because because of the good quality of the work in lower cost. and advance timezone as compare to US and Europe.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;IT works are mostly done online via Internet. and IT engineers mostly connected with all related news. If we talk about the war situation against&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Pakistan&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;Pakistan&lt;/a&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;, Tension of the border also flow throughout the country indirectly. So small affect&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;in the work is already seen due to online active media news etc.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;But if the real war will happen:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;In case of&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.quora.com/What-is-loc&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;LOC&lt;/a&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;war, If that is a ground level war or the war in the &lt;a href=&quot;https://www.quora.com/What-is-loc&quot; target=&quot;_blank&quot;&gt;LOC&lt;/a&gt; border, then It will not have much impact on Software industry much.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;In case of Nuclear war, If the level increase to the&amp;nbsp;and the area of the violence spread to the Metro cities of the&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/India&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;India&lt;/a&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;i.e. &lt;a href=&quot;https://en.wikipedia.org/wiki/Economy_of_Bangalore&quot; target=&quot;_blank&quot;&gt;Bangalore&lt;/a&gt;, Pune, Delhi, Noida, Mumbai or Kolkota then we are not sure how bad it will impact to&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/India&quot; style=&quot;font-family: Verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;India&lt;/a&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&amp;nbsp;and the world. But it will be worst for the world for next 20 years or more.&lt;/span&gt;&lt;br /&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-KY4wylhXLyo/XHafg0RGCEI/AAAAAAAAAjE/pVYfA-pUNf0K5H6_kxkgREfhhCEuT6MPQCLcBGAs/s1600/war.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: right; margin-bottom: 1em; margin-left: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;551&quot; data-original-width=&quot;980&quot; height=&quot;359&quot; src=&quot;https://2.bp.blogspot.com/-KY4wylhXLyo/XHafg0RGCEI/AAAAAAAAAjE/pVYfA-pUNf0K5H6_kxkgREfhhCEuT6MPQCLcBGAs/s640/war.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;InShort, Neither &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/India&quot; style=&quot;font-family: verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;India&lt;/a&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt; Nor &lt;/span&gt;&lt;a href=&quot;https://en.wikipedia.org/wiki/Pakistan&quot; style=&quot;font-family: verdana, sans-serif;&quot; target=&quot;_blank&quot;&gt;Pakistan&lt;/a&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt; want the War to show their army power to the world in cost of the loss for number of innocent people and going down in the growth of the country. Both country understand this and know their limits for sure.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;Wishing, The Non-destructive&amp;nbsp;sanguine thoughts.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: #444444; font-family: &amp;quot;verdana&amp;quot; , sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/2694782817731427906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2019/02/will-india-and-pakistan-war-affect-it.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2694782817731427906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2694782817731427906'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2019/02/will-india-and-pakistan-war-affect-it.html' title='Will India and Pakistan war affect IT Sector in India?'/><author><name>Manish Shrivastava</name><uri>http://www.blogger.com/profile/10208528353672148565</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//2.bp.blogspot.com/-2trGB9P9mjY/XKXUPE9mriI/AAAAAAAAAlA/wR4ckoXLtRILuescg1IZPV3IOSCEX8fBgCK4BGAYYCw/s113/a.jpeg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-KY4wylhXLyo/XHafg0RGCEI/AAAAAAAAAjE/pVYfA-pUNf0K5H6_kxkgREfhhCEuT6MPQCLcBGAs/s72-c/war.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-2174202332535645180</id><published>2016-12-16T15:47:00.002+05:30</published><updated>2016-12-16T15:47:40.665+05:30</updated><title type='text'>Template Integration In Rails Application</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;Hello Guys,&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;New Template Integration:&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;Steps:&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;1. Sylesheets&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;=&amp;gt; application.css&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;*= require &#39;css1&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;*= require &#39;css1&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;*= require &#39;css1&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;*= require &#39;css1&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;*= require_tree .&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;&amp;nbsp;&amp;nbsp;Note: It will include all the sytlesheets directory css files&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;2. Javascripts&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;=&amp;gt; application.js&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;   &lt;/span&gt;//= require &#39;/newfolder/js1&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;   &lt;/span&gt;//= require &#39;js2&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;   &lt;/span&gt;//= require &#39;js3&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;   &lt;/span&gt;//= require &#39;js4&#39;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;   &lt;/span&gt;//= require_tree .&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;    &lt;/span&gt;Note: It will include all the javascripts directory js files&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;3. Images&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;Include all the Images in Directory of assets folder&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;4. Font&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt;  &lt;/span&gt;Include all you in Fonts Directory of assets folder&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;5. Layout&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;html&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;head&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;title&amp;gt;Healthdax&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;%= stylesheet_link_tag &quot;application&quot; %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;%= javascript_include_tag &quot;application&quot; %&amp;gt; &amp;nbsp;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;%= csrf_meta_tags %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;/head&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;body&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;% if notice %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p class=&quot;alert alert-success&quot;&amp;gt;&amp;lt;%= notice %&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;% end %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;% if alert %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;lt;p class=&quot;alert alert-danger&quot;&amp;gt;&amp;lt;%= alert %&amp;gt;&amp;lt;/p&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;% end %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;nbsp; &amp;lt;%= yield %&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;/body&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;6. Create Controller&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;Filename: welcome_controller.rb&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;class WelcomeController &amp;lt; ApplicationController&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;def index;end&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;end&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;7. Define Routes&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;resources :welcome&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;8. Views =&amp;gt; welcome folder =&amp;gt; create =&amp;gt; index.html.erb&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;span class=&quot;m_5845744939764901964gmail-Apple-tab-span&quot; style=&quot;white-space: pre-wrap;&quot;&gt; &lt;/span&gt;Here you paste all html content&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 12.8px;&quot;&gt;9. Start you browser and then see your template&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/2174202332535645180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/12/template-integration-in-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2174202332535645180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2174202332535645180'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/12/template-integration-in-rails.html' title='Template Integration In Rails Application'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-3836400503084245841</id><published>2016-10-10T19:50:00.000+05:30</published><updated>2017-02-11T03:34:38.786+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="React.js"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Basic Rails application with React.js</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;&lt;u&gt;Initializing our React.js on Rails project&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;By specifying database&lt;/b&gt;&lt;br /&gt;rails new task_app -d mysql&lt;br /&gt;&lt;br /&gt;&lt;b&gt;With default database&lt;/b&gt;&lt;br /&gt;rails new task_app&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Install all the gems using bundle install&lt;/b&gt;&lt;/div&gt;&lt;div&gt;bundle install&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Add a gem &#39;&lt;/b&gt;react-rails&#39;&amp;nbsp;&lt;b&gt;with in the Gemfile&lt;/b&gt;&lt;/div&gt;&lt;div&gt;gem &#39;react-rails&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Then, please install the new gems&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;bundle install&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;react-rails comes with an installation script, which will create a components.js file and a components directory under app/assets/javascripts where our React components will live.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;rails g react:install&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;ashish@ashish:~/Desktop/projects/task_app$ rails g react:install&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Running via Spring preloader in process 15471&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;app/assets/javascripts/components&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;app/assets/javascripts/components/.gitkeep&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; insert &amp;nbsp;app/assets/javascripts/application.js&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; insert &amp;nbsp;app/assets/javascripts/application.js&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; insert &amp;nbsp;app/assets/javascripts/application.js&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;app/assets/javascripts/components.js&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;If you take a look at your application.js file after running the installer, you will notice three new lines:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;//= require react&lt;/div&gt;&lt;div&gt;//= require react_ujs&lt;/div&gt;&lt;div&gt;//= require components&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-JUrT1iABqNw/V_uY2RqnAYI/AAAAAAAAAxM/VcUPTzunQK0TXmtuy54S6COI83pSe3b7ACLcB/s1600/image.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;358&quot; src=&quot;https://4.bp.blogspot.com/-JUrT1iABqNw/V_uY2RqnAYI/AAAAAAAAAxM/VcUPTzunQK0TXmtuy54S6COI83pSe3b7ACLcB/s640/image.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Basically, it includes the actual react library, the components manifest file and a kind of familiar file ended in ujs. As you might have guessed for the file&#39;s name, react-rails includes an unobtrusive JavaScript driver which will help us to mount our React components and will also handle Turbolinks events.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Creating the Resource&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We are going to create a Task resource which includes title, description, date and status. Instead of using the scaffold generator, we are going to use the resource generator, as we are not going to be using all of the files and methods created by the scaffold generator. Another option might be running the scaffold generator and then proceed to delete the unused files/methods, but our project can turn a little messy after this. Inside your project, run the following command:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;rails g resource Task title description:text date:date status:string&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;ashish@ashish:~/Desktop/projects/task_app$ rails g resource Task title description:text date:date status:string&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Running via Spring preloader in process 15699&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp;active_record&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp;db/migrate/20161010133903_create_tasks.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp;app/models/task.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp;test_unit&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp;test/models/task_test.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp;test/fixtures/tasks.yml&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp;controller&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp;app/controllers/tasks_controller.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp;erb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp;app/views/tasks&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp;test_unit&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp;test/controllers/tasks_controller_test.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp;helper&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp;app/helpers/tasks_helper.rb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp; &amp;nbsp;test_unit&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp;assets&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp; &amp;nbsp;coffee&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;app/assets/javascripts/tasks.coffee&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp; &amp;nbsp; &amp;nbsp;scss&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;app/assets/stylesheets/tasks.scss&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; invoke &amp;nbsp;resource_route&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;route &amp;nbsp; &amp;nbsp;resources :tasks&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;For some dump data, you can create a couple of tasks through rails console:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;Please run these lines in rails console:&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;(1..4).to_a.collect{|i| Task.create(title:&quot;Task #{i}&quot;,description:&quot;Description about task #{i}&quot;,date:Date.today,status:&quot;todo&quot;)}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;(5..7).to_a.collect{|i| Task.create(title:&quot;Task #{i}&quot;,description:&quot;Description about task #{i}&quot;,date:Date.today,status:&quot;pending&quot;)}&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;(8..10).to_a.collect{|i| Task.create(title:&quot;Task #{i}&quot;,description:&quot;Description about task #{i}&quot;,date:Date.today,status:&quot;completed&quot;)}&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Don&#39;t forget to start your server with rails s. Done!&amp;nbsp;&lt;/div&gt;&lt;div&gt;We&#39;re ready to write some code.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Nesting Components: Listing Tasks&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;For our first task, we need to render any existing task inside a table. First of all, we need to create an index action inside of our TasksController:&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;# app/controllers/tasks_controller.rb&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;class TasksController &amp;lt; ApplicationController&lt;/div&gt;&lt;div&gt;&amp;nbsp; def index&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; @tasks = Task.all&lt;/div&gt;&lt;div&gt;&amp;nbsp; end&lt;/div&gt;&lt;div&gt;end&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Next, we need to create a new file index.html.erb under apps/views/tasks/, this file will act as a bridge between our Rails app and our React Components. To achieve this task, we will use the helper method react_component, which receives the name of the React component we want to render along with the data we want to pass into it.&lt;/div&gt;&lt;div style=&quot;font-weight: bold; text-decoration: underline;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;lt;%# app/views/tasks/index.html.erb %&amp;gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;lt;%= react_component &#39;Tasks&#39;, { data: @tasks&amp;nbsp;} %&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;u&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;# app/config/r&lt;/span&gt;&lt;b&gt;outes.rb&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;Add a default route as &quot;tasks#index&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Rails.application.routes.draw do&lt;/div&gt;&lt;div&gt;&amp;nbsp; resources :tasks&lt;/div&gt;&lt;div&gt;&amp;nbsp; root &quot;tasks#index&quot;&lt;/div&gt;&lt;div&gt;&amp;nbsp; # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html&lt;/div&gt;&lt;div&gt;end&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;The time has come for us to build our First React component, inside the javascripts/components directory, create a new file called tasks.js.coffee, this file will contain our Tasks component.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;&amp;nbsp; # app/assets/javascripts/components/tasks.js.coffee&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; @Tasks = React.createClass&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; render: -&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.div&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; className: &#39;tasks&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.h2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; className: &#39;title&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;Tasks&#39;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Now restart the application and it should look like that&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-04Uihonzpns/V_udS8Y6y8I/AAAAAAAAAxo/OU4Y8adoe40IY0P0vTEdLbsnUGuraYCIQCLcB/s1600/tasks.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;163&quot; src=&quot;https://1.bp.blogspot.com/-04Uihonzpns/V_udS8Y6y8I/AAAAAAAAAxo/OU4Y8adoe40IY0P0vTEdLbsnUGuraYCIQCLcB/s320/tasks.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;font-weight: normal;&quot;&gt;The Task component will display a table row containing table cells for each task attribute. Don&#39;t worry about those nulls in the React.DOM.* calls, it means we are not sending attributes to the components. Now update the render method inside the Tasks component with the following code:&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;These are some new changes for tasks.js.coffee&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;u&gt;&lt;b&gt;# app/assets/javascripts/components/&lt;/b&gt;&lt;b&gt;tasks&lt;/b&gt;&lt;b&gt;.js.coffee&lt;/b&gt;&lt;/u&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;@Tasks = React.createClass &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; getInitialState: -&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; tasks: @props.data&lt;/div&gt;&lt;div&gt;&amp;nbsp; getDefaultProps: -&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; tasks: []&lt;/div&gt;&lt;div&gt;&amp;nbsp; render: -&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; React.DOM.div&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; className: &#39;tasks&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.h2&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; className: &#39;title&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &#39;Tasks&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.table&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; className: &#39;table table-bordered&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.thead null,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.tr null,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Title&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Description&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Date&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Todo&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Pending&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.th null, &#39;Completed&#39;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.tbody null,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for task in @state.tasks&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; React.createElement Task, key: task.id, task: task&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;The method getDefaultProps will initialize our component&#39;s properties in case we forget to send any data when instantiating it, and the getInitialState method will generate the initial state of our component. Now we need to actually display the tasks provided by our Rails view.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We need to create a new Task component to display each individual task, create a new file task.js.coffee under the javascripts/components directory and insert the following contents:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;# app/assets/javascripts/components/task.js.coffee&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@Task = React.createClass&lt;br /&gt;&amp;nbsp; render: -&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; React.DOM.tr null,&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, @props.task.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, @props.task.description&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, @props.task.date&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, statusFormat(&quot;todo&quot;, @props.task.status)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, statusFormat(&quot;pending&quot;, @props.task.status)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; React.DOM.td null, statusFormat(&quot;completed&quot;, @props.task.status)&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;It looks like we are going to need a helper method to format the status. Create a new utils.js.coffee file under javascripts/ with the following contents:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;# app/assets/javascripts/utils.js.coffee&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;@statusFormat = (manual_status, automatic_status) -&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; if manual_status==automatic_status&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &quot;Yes&quot;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Now restart the rails application and it should look like that&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-9acw3TdK3BQ/V_uhgc4GpdI/AAAAAAAAAx8/DGdsSi-9nzEZZZ8bacRA402I2syY5HwVwCLcB/s1600/tests.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://4.bp.blogspot.com/-9acw3TdK3BQ/V_uhgc4GpdI/AAAAAAAAAx8/DGdsSi-9nzEZZZ8bacRA402I2syY5HwVwCLcB/s1600/tests.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Now we will add some designing stuff. We will use twitter bootstrap.&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Add gem &quot;twitter-bootstrap-rails&quot; gem with in the Gemfile&lt;/b&gt;&lt;/div&gt;&lt;div&gt;gem &quot;twitter-bootstrap-rails&quot;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;Then, please install the new gems&lt;/b&gt;&lt;/div&gt;&lt;div&gt;bundle install&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;After running bundle install, run the generator:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;rails generate bootstrap:install static&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;ashish@ashish:~/Desktop/projects/task_app$ rails generate bootstrap:install static&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Running via Spring preloader in process 18039&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; insert &amp;nbsp;app/assets/javascripts/application.js&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;app/assets/javascripts/bootstrap.js.coffee&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;app/assets/stylesheets/bootstrap_and_overrides.css&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; create &amp;nbsp;config/locales/en.bootstrap.yml&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; gsub &amp;nbsp;app/assets/stylesheets/application&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;You can run following generators to get started with Bootstrap quickly.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;rails g bootstrap:layout [LAYOUT_NAME]&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;rails g bootstrap:layout application&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;ashish@ashish:~/Desktop/projects/task_app$ rails g bootstrap:layout application&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Running via Spring preloader in process 18093&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; conflict &amp;nbsp;app/views/layouts/application.html.erb&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Overwrite /home/ashish/Desktop/projects/task_app/app/views/layouts/application.html.erb? (enter &quot;h&quot; for help) [Ynaqdh] y&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;force &amp;nbsp;app/views/layouts/application.html.erb&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;We have to override application.html.erb forcefully after running the&amp;nbsp;&lt;b&gt;rails g bootstrap:layout application&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;b&gt;Now restart the rails application and it should look like that&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-L_U_1PvUPq0/V_ui9EXfUMI/AAAAAAAAAyI/641ZK30b9xI2vkUuRmX6X3DMFgoByqD6wCLcB/s1600/bootstrap.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;407&quot; src=&quot;https://4.bp.blogspot.com/-L_U_1PvUPq0/V_ui9EXfUMI/AAAAAAAAAyI/641ZK30b9xI2vkUuRmX6X3DMFgoByqD6wCLcB/s640/bootstrap.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/3836400503084245841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/10/basic-rails-application-with-reactjs.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3836400503084245841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3836400503084245841'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/10/basic-rails-application-with-reactjs.html' title='Basic Rails application with React.js'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-JUrT1iABqNw/V_uY2RqnAYI/AAAAAAAAAxM/VcUPTzunQK0TXmtuy54S6COI83pSe3b7ACLcB/s72-c/image.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-3957116417720079359</id><published>2016-03-19T13:55:00.002+05:30</published><updated>2016-03-23T21:54:24.857+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Uploading the Images While Pick Image From FilePicker With Filestack Services</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;Hey Guys,&lt;br /&gt;&lt;br /&gt;we can pick the image while uploading from different sources like dropbox,computer,google pic,goole search image,facebook etc.. by using filepicker with filestack services&lt;br /&gt;&lt;br /&gt;here is my steps&lt;br /&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-7A31qyabq9k/Vu0Nbi64L7I/AAAAAAAAAEU/VAWpV_IUWcI67hVcMokcjcqVSH7i_6IHw/s1600/filepicker.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;259&quot; src=&quot;https://4.bp.blogspot.com/-7A31qyabq9k/Vu0Nbi64L7I/AAAAAAAAAEU/VAWpV_IUWcI67hVcMokcjcqVSH7i_6IHw/s640/filepicker.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Step1: Add Gem&lt;br /&gt;&lt;br /&gt;gem &#39;filepicker-rails&#39;(do bunlde install)&lt;br /&gt;&lt;br /&gt;Step 2: Need to add the key in application.rb&lt;br /&gt;&lt;br /&gt;config.filepicker_rails.api_key = &quot;XXXXXXXXXXXX&quot;&lt;br /&gt;&lt;br /&gt;Step 3: Create Form&lt;br /&gt;&lt;br /&gt;&amp;lt;%= f.filepicker_field :filepicker_url,dragdrop: true,services: &quot;COMPUTER&quot; %&amp;gt;&lt;br /&gt;we can restrict the different sources while providing service: &quot;Computer&quot; its only picking images from only computer rest of all sources its restricting.&lt;br /&gt;&lt;br /&gt;Step 4: Show Image&lt;br /&gt;&lt;br /&gt;&amp;lt;%= filepicker_image_tag @campaign.filepicker_url, w: 160, h: 160, fit: &#39;clip&#39;%&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;here is my reference link:&lt;br /&gt;&lt;br /&gt;https://github.com/Ink/filepicker-rails&lt;br /&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; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;br /&gt;https://rubygems.org/gems/filepicker-rails/versions/2.1.0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thank You !!!!!!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/3957116417720079359/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/uploading-images-while-pick-image-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3957116417720079359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3957116417720079359'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/uploading-images-while-pick-image-from.html' title='Uploading the Images While Pick Image From FilePicker With Filestack Services'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-7A31qyabq9k/Vu0Nbi64L7I/AAAAAAAAAEU/VAWpV_IUWcI67hVcMokcjcqVSH7i_6IHw/s72-c/filepicker.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-7458982495154123618</id><published>2016-03-19T13:14:00.000+05:30</published><updated>2016-03-23T21:56:34.703+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Send Text Message and Voice Message Using Twilio with Rails 4</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-bQw3rULaQ9Y/VvLDpFDC9RI/AAAAAAAAAqQ/PZIutSEDlFgYnCkdiCxoOo3yCFVZBt_PA/s1600/twilio-logo.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;212&quot; src=&quot;https://1.bp.blogspot.com/-bQw3rULaQ9Y/VvLDpFDC9RI/AAAAAAAAAqQ/PZIutSEDlFgYnCkdiCxoOo3yCFVZBt_PA/s640/twilio-logo.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Hello Guys,&lt;br /&gt;&lt;br /&gt;Send text message and voice message with call using twilio with rails 4&lt;br /&gt;&lt;br /&gt;here my steps:&lt;br /&gt;&lt;br /&gt;Step1: Need to add this into you gem file&lt;br /&gt;&lt;br /&gt;gem &#39;twilio-ruby&#39;, &#39;~&amp;gt; 4.1.0&#39; (do bundle install)&lt;br /&gt;&lt;br /&gt;Step 2: set your twilio application and secret key in your secret.yml file and create method&lt;br /&gt;&lt;br /&gt;twilio_account_sid&lt;b&gt;: XXXXXXXXXXX&lt;/b&gt;&lt;br /&gt;twilio_auth_token: XXXXXXXXXXX&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Step 3: creating Method for sending the Text Message&lt;br /&gt;&lt;br /&gt;# Method for giving the twillo credential to send message to phone number  def send_otp&lt;br /&gt;def send_otp &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Twilio::REST::Client.new(Rails.application.secrets.twilio_account_sid,Rails.application.secrets.twilio_auth_token)&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # Method for generating random otp number&lt;br /&gt;&amp;nbsp; def generated_otp&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;otp_number = rand(0000..9999).to_s.rjust(4, &quot;0&quot;)&lt;br /&gt;&amp;nbsp;end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;# Method for checking the onfirmation of the particular mobiler number otp&lt;br /&gt;&amp;nbsp;def confirm_verify_number&lt;br /&gt;&amp;nbsp; &amp;nbsp; # make it session nil and send otp request to phone number&lt;br /&gt;&amp;nbsp; &amp;nbsp; send_request = send_otp_request&lt;br /&gt;&amp;nbsp;end&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # Method for send otp request to the phone number&lt;br /&gt;&amp;nbsp; def send_otp_request&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;# generating the otp number&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;otp_number = generated_otp&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;send_otp.account.messages.create(to: &quot;+1&quot;&amp;lt;&amp;lt;#{Your Phone Number},from: &quot;#{Twilio Number}&quot;,body: otp_number.to_i)&lt;br /&gt;&amp;nbsp;end&lt;br /&gt;&lt;br /&gt;it will send message to your phone&lt;br /&gt;&lt;br /&gt;Step 4: creating the method for creating the voice message(need follow same step last method need to replace with below method)&lt;br /&gt;&lt;br /&gt;def send_otp_request&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # generating the otp number&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;otp_number = generated_otp&lt;br /&gt;&amp;nbsp; &amp;nbsp; # create call&lt;br /&gt;&amp;nbsp; &amp;nbsp;send_otp.account.calls.create(&lt;br /&gt;:from =&amp;gt; &#39;+16467367408&#39;,:to =&amp;gt; &quot;+1&quot;+#{Phone Number}r,:url =&amp;gt; &amp;nbsp; &amp;nbsp; &quot;http://twimlets.com/echoTwiml=%3CResponse%3E%3CSay%3EThank+you+to+be+part+of+adsonrides.com+your+number+is+#{otp_number[0]}+#{otp_number[1]}+#{otp_number[2]}+#{otp_number[3]}+once+again+#{otp_number[0]}+#{otp_number[1]}+#{otp_number[2]}+#{otp_number[3]}+Please+Do+Not+Share+Number+With+Any+One+Thank+You+Enjoy+Our+Services+Good+Bye.%3C%2FSay%3E%3C%2FResponse%3E&quot;)&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;enjoy this blog without using any twilio setting&lt;br /&gt;&lt;br /&gt;Thank You !!!!!&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/7458982495154123618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/send-text-message-and-voice-message.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7458982495154123618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7458982495154123618'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/send-text-message-and-voice-message.html' title='Send Text Message and Voice Message Using Twilio with Rails 4'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-bQw3rULaQ9Y/VvLDpFDC9RI/AAAAAAAAAqQ/PZIutSEDlFgYnCkdiCxoOo3yCFVZBt_PA/s72-c/twilio-logo.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-7003454994519953992</id><published>2016-03-16T13:54:00.001+05:30</published><updated>2016-03-17T12:09:19.478+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>Address Search Using Google Search Autocomplete With Restricted Countries</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;script src=&quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;libraries=places&quot;&gt;&lt;/script&gt; &lt;br /&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-N-AyM_dpCNI/VupQ9qJ9khI/AAAAAAAAAp8/CsNeecpzm38T3QP5BCdC6ubMbQhpDrLGg/s1600/google-map.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://3.bp.blogspot.com/-N-AyM_dpCNI/VupQ9qJ9khI/AAAAAAAAAp8/CsNeecpzm38T3QP5BCdC6ubMbQhpDrLGg/s640/google-map.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;We can easily search the particular address with Street No,Street,City,State and Country using google search autocomplete, below my code is implement in ruby on rails&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;label for=&quot;user_profile_address_car_parked&quot;&gt;Address Search&lt;/label&gt;&lt;input autocomplete=&quot;off&quot; class=&quot;form-control&quot; id=&quot;advertiser_address&quot; name=&quot;user_profile[address_car_parked]&quot; placeholder=&quot;1551 Berry Avenue, Miami, FL, United States&quot; type=&quot;text&quot; /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Here my java script&lt;br /&gt;&lt;br /&gt;&amp;lt;script src=&quot;http://maps.googleapis.com/maps/api/js?sensor=false&amp;amp;amp;libraries=places&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&amp;lt;script type=&quot;text/javascript&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;// script for address autocomplete search&lt;br /&gt;$(function(){&lt;br /&gt;&amp;nbsp; &amp;nbsp; var autocomplete;&lt;br /&gt;&amp;nbsp; &amp;nbsp; var geocoder;&lt;br /&gt;&amp;nbsp; &amp;nbsp; var input = document.getElementById(&#39;advertiser_address&#39;);&lt;br /&gt;&amp;nbsp; &amp;nbsp; var options = {&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; componentRestrictions: {&#39;country&#39;:&#39;us&#39;}&lt;br /&gt;&amp;nbsp; &amp;nbsp; };&lt;br /&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; autocomplete = new google.maps.places.Autocomplete(input,options);&lt;br /&gt;});&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;br /&gt;here&amp;nbsp;componentRestrictions says that we can search only particular country addresses.&amp;nbsp;&amp;nbsp;&lt;/div&gt;&lt;script&gt; // script for address autocomplete search $(function(){     var autocomplete;     var geocoder;     var input = document.getElementById(&#39;advertiser_address&#39;);     var options = {       componentRestrictions: {&#39;country&#39;:&#39;in&#39;}     };      autocomplete = new google.maps.places.Autocomplete(input,options); }); &lt;/script&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/7003454994519953992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/address-search-using-google-search.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7003454994519953992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7003454994519953992'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/address-search-using-google-search.html' title='Address Search Using Google Search Autocomplete With Restricted Countries'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-N-AyM_dpCNI/VupQ9qJ9khI/AAAAAAAAAp8/CsNeecpzm38T3QP5BCdC6ubMbQhpDrLGg/s72-c/google-map.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-396330511633775019</id><published>2016-03-07T17:40:00.000+05:30</published><updated>2016-03-08T12:16:59.499+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Receive emails from gmail or any other email provider ( IMAP Ruby On Rails )</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-eoDc0dNwUEU/Vt1vliELDII/AAAAAAAAApU/sgqbxgkfafQ/s1600/test.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;358&quot; src=&quot;https://2.bp.blogspot.com/-eoDc0dNwUEU/Vt1vliELDII/AAAAAAAAApU/sgqbxgkfafQ/s640/test.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Configure your gmail for sending emails to other mail clients&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;You can retrieve your Gmail messages with a client or device that supports IMAP, like Microsoft Outlook or Apple Mail.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Enable IMAP in your Gmail settings&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;1. Sign in to Gmail.&lt;br /&gt;2. Click the gear in the top right .&lt;br /&gt;3. Select Settings.&lt;br /&gt;4. Click Forwarding and POP/IMAP.&lt;br /&gt;5. Select Enable IMAP.&lt;br /&gt;6. Click Save Changes.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If you&#39;re using a client that&#39;s not listed above, you can also use the following information to configure your IMAP. If you have problems, contact your mail client&#39;s customer support department for further instructions.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Incoming Mail (IMAP) Server - Requires SSL&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;imap.gmail.com&lt;br /&gt;Port: 993&lt;br /&gt;Requires SSL:Yes&lt;br /&gt;&lt;br /&gt;For more information about imap you can refer that link&lt;br /&gt;&lt;a href=&quot;https://support.google.com/mail/troubleshooter/1668960?hl=en#ts=1665018%2C1665144&quot;&gt;https://support.google.com/mail/troubleshooter/1668960?hl=en#ts=1665018%2C1665144&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;After that go to this url and you will find lots of information for allowing access by device or any mail client:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://support.google.com/mail/accounts/answer/78754&quot;&gt;https://support.google.com/mail/accounts/answer/78754&lt;/a&gt;&lt;br /&gt;&lt;b&gt;=&amp;gt; You can&amp;nbsp;find out&amp;nbsp;the screenshot of same thing below that I have followed to get access for my ruby&amp;nbsp;on rails application&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;1. Allow access to your Google account:&amp;nbsp;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://accounts.google.com/b/0/DisplayUnlockCaptcha&quot;&gt;https://accounts.google.com/b/0/DisplayUnlockCaptcha&lt;/a&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-w7GKvepfnKo/Vt11oR5VKEI/AAAAAAAAApk/D1PSRQh31mE/s1600/allow%2Baccess%2B1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;356&quot; src=&quot;https://2.bp.blogspot.com/-w7GKvepfnKo/Vt11oR5VKEI/AAAAAAAAApk/D1PSRQh31mE/s640/allow%2Baccess%2B1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;2. Access for less secure apps:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;https://www.google.com/settings/security/lesssecureapps&quot;&gt;https://www.google.com/settings/security/lesssecureapps&lt;/a&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-8zKAsO7h1Lc/Vt11uaNgR_I/AAAAAAAAApo/fsZyFJSrwso/s1600/allow%2Baccess.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;358&quot; src=&quot;https://3.bp.blogspot.com/-8zKAsO7h1Lc/Vt11uaNgR_I/AAAAAAAAApo/fsZyFJSrwso/s640/allow%2Baccess.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;After doing all these configurations and setting, we can access the gmail emails using&amp;nbsp;&lt;/b&gt;&lt;b&gt;IMAP&lt;/b&gt;&lt;b&gt;&amp;nbsp;:&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;We are using ruby libraries to fetching emails from gmail &amp;nbsp;using :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;An IMAP client connects to a server, and then authenticates itself using either authenticate() or login().&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;List sender and subject of all recent messages in the default mailbox&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;&lt;br /&gt;require &quot;net/imap.rb&quot;&lt;br /&gt;imap = Net::IMAP.new(&#39;imap.gmail.com&#39;,993,true)&lt;br /&gt;# We are using gmail as a mail provider so below mentioned method can be differ as per mail provider&lt;br /&gt;imap.login(&#39;test@gmail.com&#39;, &#39;password&#39;)&lt;br /&gt;imap.examine(&#39;INBOX&#39;)&lt;br /&gt;imap.search([&quot;All&quot;]) // Shows all ids of inbox message&lt;br /&gt;imap.search([&quot;All&quot;]) /&lt;br /&gt;imap.search([&quot;RECENT&quot;]).each do |message_id|&lt;br /&gt;&amp;nbsp; envelope = imap.fetch(message_id, &quot;ENVELOPE&quot;)[0].attr[&quot;ENVELOPE&quot;]&lt;br /&gt;&amp;nbsp; body = imap.fetch(message_id,&#39;BODY[TEXT]&#39;)[0].attr[&#39;BODY[TEXT]&#39;]&lt;br /&gt;&amp;nbsp; puts &quot;#{envelope.from[0].name}: \t#{envelope.subject}&quot;&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For more information about using imap with ruby you can refer below mentioned link&lt;br /&gt;&lt;a href=&quot;http://ruby-doc.org/stdlib-1.9.3/libdoc/net/imap/rdoc/Net/IMAP.html&quot;&gt;http://ruby-doc.org/stdlib-1.9.3/libdoc/net/imap/rdoc/Net/IMAP.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example: Imap service that fetch the new updated emails from gmail. We are saving id of last gmail mail in database&lt;/b&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;br /&gt;    &lt;br /&gt;class ImapService&lt;br /&gt;  require &quot;net/imap.rb&quot;&lt;br /&gt;&lt;br /&gt;  def initialize(params={})&lt;br /&gt;    @email = params[:email] || &#39;example@gmail.com&#39;&lt;br /&gt;    @password = params[:password] ||  &#39;testpassword&#39;&lt;br /&gt;    @imap_server = params[:imap_server] ||  &#39;imap.gmail.com&#39;&lt;br /&gt;    @port = params[:port] || 993&lt;br /&gt;    @ssl = params[:ssl] || true&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def save_emails_in_database&lt;br /&gt;    imap = select_inbox&lt;br /&gt;    latest_email = LatestEmail.last&lt;br /&gt;    ## Check that in database we have stored an id of last fetched email or not&lt;br /&gt;    last_email_id = latest_email.email_id rescue nil&lt;br /&gt;    if last_email_id&lt;br /&gt;      ## We will fetch all emails greater than the saved id in database&lt;br /&gt;      new_email_ids = fetch_latest_emails(imap, last_email_id)&lt;br /&gt;      fetch_body_and_save(imap, new_email_ids)&lt;br /&gt;      last_email_id = new_email_ids.last&lt;br /&gt;    else&lt;br /&gt;      last_email_id = fetch_last_email(imap)&lt;br /&gt;    end&lt;br /&gt;    true&lt;br /&gt;    ## Save last_email_id in database &lt;br /&gt;    if latest_email.blank?&lt;br /&gt;     latest_email = LatestEmail.new(email_id: last_email_id)&lt;br /&gt;    else&lt;br /&gt;     latest_email.email_id=last_email_id&lt;br /&gt;    end&lt;br /&gt;    latest_email.save&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def save_latest_emails_in_database&lt;br /&gt;    begin&lt;br /&gt;     save_emails_in_database&lt;br /&gt;    rescue&lt;br /&gt;      false&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  private&lt;br /&gt;    attr_reader :email, :password, :imap_server, :password, :port, :ssl&lt;br /&gt;&lt;br /&gt;  # attr_reader :address&lt;br /&gt;&lt;br /&gt;  def external_imap_service&lt;br /&gt;    Net::IMAP&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def fetch_latest_emails(imap, last_email_id)&lt;br /&gt;    imap.search(&quot;#{last_email_id}:*&quot;)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def fetch_all_emails(imap)&lt;br /&gt;    imap.search(&quot;all&quot;).last&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def connect_to_imap&lt;br /&gt;    external_imap_service.new(imap_server,port,ssl)&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def select_inbox&lt;br /&gt;    imap = connect_to_imap&lt;br /&gt;    imap.login(email, password)&lt;br /&gt;    imap.examine(&#39;INBOX&#39;)&lt;br /&gt;    return imap&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def fetch_body_and_save(imap, new_email_ids)&lt;br /&gt;    new_email_ids.each do |email_id|&lt;br /&gt;      body_text = fetch_email_body(imap, email_id)&lt;br /&gt;      ## Save your emails from here :-)&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;  def fetch_email_body(imap, email_id)&lt;br /&gt;     imap.fetch(email_id,&#39;BODY[TEXT]&#39;)[0].attr[&#39;BODY[TEXT]&#39;]&lt;br /&gt;  end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/396330511633775019/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/receive-emails-from-gmail-or-any-other.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/396330511633775019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/396330511633775019'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/receive-emails-from-gmail-or-any-other.html' title='Receive emails from gmail or any other email provider ( IMAP Ruby On Rails )'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-eoDc0dNwUEU/Vt1vliELDII/AAAAAAAAApU/sgqbxgkfafQ/s72-c/test.png" height="72" width="72"/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-2855233921499243475</id><published>2016-03-05T14:01:00.001+05:30</published><updated>2016-03-05T23:45:37.296+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Permtting the Multiple Params Without Using Mutiple Condition</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-Wu_Kq3iB-LA/VtshYbgx9ZI/AAAAAAAAApE/3cKZTea7lJ4/s1600/Comic.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;277&quot; src=&quot;https://2.bp.blogspot.com/-Wu_Kq3iB-LA/VtshYbgx9ZI/AAAAAAAAApE/3cKZTea7lJ4/s320/Comic.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;We can permit different type of model attributes without using the multiple condition&lt;br /&gt;&lt;br /&gt;we normally using below code to permit attributes with multiple condition&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;br /&gt;  if params[:model]==&quot;user&quot;&lt;br /&gt;  User.create(user_params)&lt;br /&gt; elsif params[:model]==&quot;test&quot;&lt;br /&gt;  Test.create(test_params)&lt;br /&gt; elsif params[:model]==&quot;post&quot;&lt;br /&gt;  Post.create(post_params)&lt;br /&gt; elsif params[:model]==&quot;comment&quot;&lt;br /&gt;  Comment.create(comment_params) &lt;br /&gt; elsif params[:model]==&quot;reply&quot;&lt;br /&gt;  Reply.create(reply_params)&lt;br /&gt; end&lt;br /&gt;&lt;/pre&gt;&amp;nbsp; &lt;br /&gt;&lt;br /&gt;here my code customize the mutiple &amp;nbsp;condition in one line&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;&lt;br /&gt;class HomeController &amp;lt; ApplicationController&lt;br /&gt;&lt;br /&gt; def save_data&lt;br /&gt;   params[:model].camelcase.constantize.create(send(&quot;#{params[:model]}_params&quot;))&lt;br /&gt;   # if params[:model]==&quot;user&quot;&lt;br /&gt;   #  User.create(user_params)&lt;br /&gt;   # elsif params[:model]==&quot;test&quot;&lt;br /&gt;   #  Test.create(test_params)&lt;br /&gt;   # elsif params[:model]==&quot;post&quot;&lt;br /&gt;   #  Post.create(post_params)&lt;br /&gt;   # elsif params[:model]==&quot;comment&quot;&lt;br /&gt;   #  Comment.create(comment_params)&lt;br /&gt;   # elsif params[:model]==&quot;reply&quot;&lt;br /&gt;   #  Reply.create(reply_params)&lt;br /&gt;   # end&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; private &lt;br /&gt; def user_params&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; def test_params&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; def post_params&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; def comment_params&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt; def reply_params&lt;br /&gt; end&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/2855233921499243475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/creating-multiple-params-without-using.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2855233921499243475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/2855233921499243475'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/creating-multiple-params-without-using.html' title='Permtting the Multiple Params Without Using Mutiple Condition'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-Wu_Kq3iB-LA/VtshYbgx9ZI/AAAAAAAAApE/3cKZTea7lJ4/s72-c/Comic.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-3732539936624730495</id><published>2016-03-03T15:18:00.001+05:30</published><updated>2016-03-03T16:16:27.192+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Solr Search"/><title type='text'>Sunspot Solr Search example with all important features</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;&lt;u&gt;Below you will find all the&amp;nbsp;practical&amp;nbsp;information about that sunspot solr search:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-7cqXLBODJIY/VtgVkNfeGhI/AAAAAAAAAo0/gfUbRPsoDDE/s1600/Solr-with-RubyonRails.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;160&quot; src=&quot;https://3.bp.blogspot.com/-7cqXLBODJIY/VtgVkNfeGhI/AAAAAAAAAo0/gfUbRPsoDDE/s640/Solr-with-RubyonRails.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;&lt;b&gt;&lt;i&gt;Points&amp;nbsp;those are covered below :&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;/b&gt;1. Solr search for same model&lt;br /&gt;2. Solr search in relationships&lt;br /&gt;&amp;nbsp; a. has_many&amp;nbsp;&amp;nbsp;( Using Join&amp;nbsp;)&lt;br /&gt;&amp;nbsp; b. has_one ( Using Join and without join )&lt;br /&gt;3. Search products by price ranges&lt;br /&gt;&amp;nbsp; a. Follow that for more specific information&amp;nbsp;&lt;a href=&quot;http://www.clecotech.in/2016/02/multiple-range-filter-with-float-or.html&quot;&gt;http://www.clecotech.in/2016/02/multiple-range-filter-with-float-or.html&lt;/a&gt;&lt;br /&gt;4. Order all the products by location ( lat lng ) as per end user location&lt;br /&gt;&amp;nbsp; a.&amp;nbsp;&lt;b&gt;In model&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &lt;/b&gt;latlon(:location) {        Sunspot::Util::Coordinates.new(store.lat, store.lng)     }&lt;br /&gt;&amp;nbsp; b.&amp;nbsp;&lt;b&gt;In controller&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; order_by_geodist(:location, params[:latitude], params[:longitude])&lt;br /&gt;5. Find nearest products in some distance as per my location ( lat, long )&lt;br /&gt;&amp;nbsp; with(:location).in_radius(params[:latitude], params[:longitude], params[:distance]) if !params[:distance].blank? &amp;amp;&amp;amp; params[:distance].to_i &amp;gt; 0&lt;br /&gt;6. Search by tags as per acts-as-taggable-on gem or normal array of tags&lt;br /&gt;&amp;nbsp; a.&amp;nbsp;&lt;b&gt;In Model&lt;/b&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; string :tags, :multiple =&amp;gt; true do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; tags.collect(&amp;amp;:name)&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; b.&amp;nbsp;&lt;b&gt;In Controller&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/b&gt;with(:tags, params[:tags].split(&quot;,&quot;)) if !params[:tags].blank?&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;We are setting up the objects inside the model like that :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;  # Setting Up Objects  &lt;br /&gt;  searchable do&lt;br /&gt;    integer :id&lt;br /&gt;    integer :store_id&lt;br /&gt;    text :title&lt;br /&gt;    join(:city, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;    join(:state, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;    join(:landmark, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;    join(:address, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;    join(:pin_code, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;    latlon(:location) { &lt;br /&gt;      Sunspot::Util::Coordinates.new(store.lat, store.lng)&lt;br /&gt;    }&lt;br /&gt;    string :tags, :multiple =&amp;gt; true do&lt;br /&gt;      tags.collect(&amp;amp;:name)&lt;br /&gt;    end&lt;br /&gt;    float :pricing do&lt;br /&gt;      pricing.mrp_per_unit&lt;br /&gt;    end&lt;br /&gt;    # join(:mrp_per_unit, :target =&amp;gt; Pricing, :type =&amp;gt; :float, :join =&amp;gt; { :from =&amp;gt; :product_id, :to =&amp;gt; :id })&lt;br /&gt;    text :category do&lt;br /&gt;      category.title&lt;br /&gt;    end&lt;br /&gt;    text :sub_category do&lt;br /&gt;      sub_category.title&lt;br /&gt;    end&lt;br /&gt;    text :child_sub_category do&lt;br /&gt;      child_sub_category.title&lt;br /&gt;    end&lt;br /&gt;  end&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;It is the code that we can write in controller for performing the search based on the added objects in model:&lt;/u&gt;&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;  Product.search do &lt;br /&gt;    fulltext params[:q] if !params[:q].blank?&lt;br /&gt;    order_by_geodist(:location, params[:latitude], params[:longitude])&lt;br /&gt;    fulltext params[:pin_code], {fields: :pin_code} if !params[:pin_code].blank?&lt;br /&gt;    with(:tags, params[:tags].split(&quot;,&quot;)) if !params[:tags].blank?&lt;br /&gt;    with(:location).in_radius(params[:latitude], params[:longitude], params[:distance]) if !params[:distance].blank? &amp;amp;&amp;amp; params[:distance].to_i &amp;gt; 0&lt;br /&gt;    fulltext params[:location], {&lt;br /&gt;      fields: [:city, :landmark, :address, :state]&lt;br /&gt;    } if !params[:location].blank?&lt;br /&gt;    any_of do &lt;br /&gt;      params[:pricing].collect{|range| &lt;br /&gt;        eval(range).is_a?(Range) ? with(:pricing).between(eval(range)) : with(:pricing).greater_than(eval(range))  &lt;br /&gt;      }&lt;br /&gt;    end if !params[:pricing].blank?&lt;br /&gt;    paginate :page =&amp;gt; params[:page], per_page: 15&lt;br /&gt;  end.results&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;For more simple example please visit that&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.clecotech.in/2016/02/sunspot-solr-search-in-ruby-on-rails.html&quot;&gt;http://www.clecotech.in/2016/02/sunspot-solr-search-in-ruby-on-rails.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;http://www.clecotech.in/2016/02/multiple-range-filter-with-float-or.html&quot;&gt;http://www.clecotech.in/2016/02/multiple-range-filter-with-float-or.html&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/sunspot/sunspot&quot;&gt;https://github.com/sunspot/sunspot&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/3732539936624730495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/03/sunspot-solr-search-example-with-all.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3732539936624730495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/3732539936624730495'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/03/sunspot-solr-search-example-with-all.html' title='Sunspot Solr Search example with all important features'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-7cqXLBODJIY/VtgVkNfeGhI/AAAAAAAAAo0/gfUbRPsoDDE/s72-c/Solr-with-RubyonRails.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-7757184990448983707</id><published>2016-02-29T15:57:00.001+05:30</published><updated>2016-03-05T02:47:13.320+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Rubygems"/><category scheme="http://www.blogger.com/atom/ns#" term="Solr Search"/><title type='text'>Solr Search, Multiple range filter with float or integer columns for joins with sunspot</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-WmYTioCT-NE/VtQc-s1X6jI/AAAAAAAAAok/aJTMGypPegs/s1600/test.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;449&quot; src=&quot;https://3.bp.blogspot.com/-WmYTioCT-NE/VtQc-s1X6jI/AAAAAAAAAok/aJTMGypPegs/s640/test.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;I have struggled too much for finding out the appropriate solution but still looking for the best one. Below you can find out an alternative to make that work for at least one column that belongs to other model.&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;u&gt;Product Model :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;class Product &amp;lt; ActiveRecord::Base&lt;br /&gt;searchable do&lt;br /&gt;&amp;nbsp; &amp;nbsp; integer :id&lt;br /&gt;&amp;nbsp; &amp;nbsp; # we are indexing mrp_per_unit column of pricings table&lt;br /&gt;&amp;nbsp; &amp;nbsp; float :pricing do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; pricing.mrp_per_unit&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; # I was trying to make multiple range filter work with join but not succeed so I have raised an issue on github sunspot repo&amp;nbsp;&lt;a href=&quot;https://github.com/sunspot/sunspot/issues/770&quot;&gt;https://github.com/sunspot/sunspot/issues/770&lt;/a&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; # join(:mrp_per_unit, :target =&amp;gt; Pricing, :type =&amp;gt; :float, :join =&amp;gt; { :from =&amp;gt; :product_id, :to =&amp;gt; :id })&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;u&gt;Pricing Model :&lt;/u&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class=&quot;prettyprint&quot;&gt;class Pricing &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; belongs_to :product&lt;br /&gt;&amp;nbsp; searchable do&lt;br /&gt;&amp;nbsp; &amp;nbsp; integer :product_id&lt;br /&gt;&amp;nbsp; &amp;nbsp; float :mrp_per_unit&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;&lt;u&gt;Search Controller :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;@search = Product.search do &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; any_of do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # You can write more or can make it dynamic as per your requirement&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # It is only for example that will help you in understanding that&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # In that way you will see the whole data filtered as per the specified ranges&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with(:pricing, 1..100)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with(:pricing, 101..200)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with(:pricing, 201..300)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with(:pricing, 301..400)&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; with(:pricing, 401..500)&amp;nbsp; &lt;br /&gt;    end&lt;br /&gt;end&lt;br /&gt;@search.results&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;You can find out the case in brief here at my github issue&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;https://github.com/sunspot/sunspot/issues/770&quot;&gt;https://github.com/sunspot/sunspot/issues/770&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/7757184990448983707/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/multiple-range-filter-with-float-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7757184990448983707'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7757184990448983707'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/multiple-range-filter-with-float-or.html' title='Solr Search, Multiple range filter with float or integer columns for joins with sunspot'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-WmYTioCT-NE/VtQc-s1X6jI/AAAAAAAAAok/aJTMGypPegs/s72-c/test.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-5764254068194038347</id><published>2016-02-29T02:50:00.001+05:30</published><updated>2016-02-29T04:11:01.337+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Social Networking"/><title type='text'>Chance to get featured at clecotech.in</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;&quot; data-block=&quot;true&quot; data-offset-key=&quot;3jdet-0-0&quot; style=&quot;background-color: white;&quot;&gt;&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;3jdet-0-0&quot; style=&quot;color: #141823; direction: ltr; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-78xGL1dQg9Y/VtNkrbhbGrI/AAAAAAAAAoU/VQKdnSJaPlA/s1600/clecotech.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;353&quot; src=&quot;https://1.bp.blogspot.com/-78xGL1dQg9Y/VtNkrbhbGrI/AAAAAAAAAoU/VQKdnSJaPlA/s640/clecotech.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;All the facebook  members, here is a chance for you to get featured in our website background cover. Upload your one of the favorite holi pic at facebook page and selected pic will be featured at clecotech.in hurry up!&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;3jdet-0-0&quot; style=&quot;color: #141823; direction: ltr; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px; position: relative; white-space: pre-wrap;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;3jdet-0-0&quot; style=&quot;color: #141823; direction: ltr; font-family: helvetica, arial, sans-serif; font-size: 14px; line-height: 18px; position: relative; white-space: pre-wrap;&quot;&gt;Click here...&lt;/div&gt;&lt;div class=&quot;_1mf _1mj&quot; data-offset-key=&quot;3jdet-0-0&quot; style=&quot;direction: ltr; position: relative;&quot;&gt;&lt;span style=&quot;color: #141823; font-family: &amp;quot;helvetica&amp;quot; , &amp;quot;arial&amp;quot; , sans-serif;&quot;&gt;&lt;span style=&quot;font-size: 14px; line-height: 18px; white-space: pre-wrap;&quot;&gt;&lt;a href=&quot;https://www.facebook.com/Clecotech&quot;&gt;https://www.facebook.com/Clecotech&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/5764254068194038347/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/chance-to-get-featured-at-clecotechin.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/5764254068194038347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/5764254068194038347'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/chance-to-get-featured-at-clecotechin.html' title='Chance to get featured at clecotech.in'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-78xGL1dQg9Y/VtNkrbhbGrI/AAAAAAAAAoU/VQKdnSJaPlA/s72-c/clecotech.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-1867990643437115463</id><published>2016-02-28T17:47:00.001+05:30</published><updated>2016-02-29T04:11:15.952+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="HTML 5"/><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><title type='text'>Know more about Aadhaar Card ( UID )</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://1.bp.blogspot.com/-irqnMH9dWKs/VtLlEgroQgI/AAAAAAAAAoE/kcfN4R2XOVk/s1600/test.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;353&quot; src=&quot;https://1.bp.blogspot.com/-irqnMH9dWKs/VtLlEgroQgI/AAAAAAAAAoE/kcfN4R2XOVk/s640/test.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;The actual UIDAI-Aadhaar number is 11 digits and not 12 digits. Well, do not be surprised.&lt;br /&gt;&lt;br /&gt;The first 11 digits of the 12 digit Aadhaar number displayed on your Aadhaar card is the actual UID Number and the 12th digit is the checksum associated with Verhoeff Algorithm scheme.&lt;br /&gt;&lt;br /&gt;What is Checksum?&lt;br /&gt;&lt;br /&gt;The checksum is the last digit in the number series of a number, through which data-entry errors can be eliminated to a large extent.&lt;br /&gt;&lt;br /&gt;The purpose of check digits is simple. Any time identifiers (typically number +/- letters) are being manually entered via keyboard, there will be errors. Inadvertent keystrokes or fatigue can cause digits to be rearranged, dropped, or inserted. The most common example is of misdialing phone numbers.&lt;br /&gt;&lt;br /&gt;Check digits help to reduce the likelihood of errors by introducing a final digit that is calculated from the prior digits. Using the proper algorithm, the final digit can always be calculated. Therefore, when a number is entered into the system (manually or otherwise), the computer can instantly verify that the final digit matches the digit predicted by the check digit algorithm. If the two do not match, the number is refused. The end result is fewer data entry errors.&lt;br /&gt;&lt;br /&gt;In today’s world, two checksum algorithms are widely used. There are&lt;br /&gt;&lt;br /&gt;01) Luhn algorithm.&lt;br /&gt;&lt;br /&gt;02) Verhoeff algorithm.&lt;br /&gt;&lt;br /&gt;The Luhn Algorithm’s most common usage is in the generation of credit card numbers.&lt;br /&gt;&lt;br /&gt;The Verhoeff algorithm’s most common usage is in the UIDAI-Aadhaar number generation program.&lt;br /&gt;&lt;br /&gt;The Verhoeff algorithm is a complicated one, and cannot be calculated manually. This is suitable for computer-era.&lt;br /&gt;&lt;br /&gt;The Verhoeff algorithm, a checksum formula for error detection first published in 1969, was developed by Dutch mathematician Jacobus Verhoeff (born 1927). Like the more widely known Luhn algorithm, it works with strings of decimal digits of any length. It detects all single-digit errors and all transposition errors involving two adjacent digits.&lt;br /&gt;&lt;br /&gt;As 100 crores+ Aadhaar numbers will be generated, the Verhoeff Algorithm was the chosen one. And, it is not expected that any one will try to manually validate the Aadhaar number.&lt;br /&gt;&lt;br /&gt;Aadhaar number is a random generated number, with no preset formula like the other Indian numbers, be it Pin code, IT PAN, Passport Number or Bank Account number.&lt;br /&gt;&lt;br /&gt;So if you wants to create your function to validate the Aadhaar number than you can follow&amp;nbsp;Verhoeff algorithm. Below you can find out the javascript way of making it possible to validate Aadhaar number&lt;br /&gt;&lt;br /&gt;&lt;pre class=&quot;prettyprint&quot;&gt;// verhoeff check is the string method that is validating the aadhaar card number&lt;br /&gt;// In alert it will return true or false as per the validations&lt;br /&gt;alert(&quot;222233334444&quot;.verhoeffCheck())&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Verhoeff algorithm js required to use aadhaar number validation&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class=&quot;prettyprint&quot;&gt;// Verhoeff algorithm&lt;br /&gt;var Verhoeff = {&lt;br /&gt; &quot;d&quot;:[[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;  [1,2,3,4,0,6,7,8,9,5],&lt;br /&gt;  [2,3,4,0,1,7,8,9,5,6],&lt;br /&gt;  [3,4,0,1,2,8,9,5,6,7],&lt;br /&gt;  [4,0,1,2,3,9,5,6,7,8],&lt;br /&gt;  [5,9,8,7,6,0,4,3,2,1],&lt;br /&gt;  [6,5,9,8,7,1,0,4,3,2],&lt;br /&gt;  [7,6,5,9,8,2,1,0,4,3],&lt;br /&gt;  [8,7,6,5,9,3,2,1,0,4],&lt;br /&gt;  [9,8,7,6,5,4,3,2,1,0]],&lt;br /&gt; &quot;p&quot;:[[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;  [1,5,7,6,2,8,3,0,9,4],&lt;br /&gt;  [5,8,0,3,7,9,6,1,4,2],&lt;br /&gt;  [8,9,1,6,0,4,3,5,2,7],&lt;br /&gt;  [9,4,5,3,1,2,6,8,7,0],&lt;br /&gt;  [4,2,8,6,5,7,3,9,0,1],&lt;br /&gt;  [2,7,9,3,8,0,6,4,1,5],&lt;br /&gt;  [7,0,4,6,9,1,3,2,5,8]],&lt;br /&gt; &quot;j&quot;:[0,4,3,2,1,5,6,7,8,9],&lt;br /&gt; &quot;check&quot;:function(str)&lt;br /&gt; {&lt;br /&gt;  var c = 0;&lt;br /&gt;  str.replace(/\D+/g,&quot;&quot;).split(&quot;&quot;).reverse().join(&quot;&quot;).replace(/[\d]/g, function(u, i, o){&lt;br /&gt;   c = Verhoeff.d[c][Verhoeff.p[i&amp;amp;7][parseInt(u,10)]];&lt;br /&gt;  });&lt;br /&gt;  return (c === 0);&lt;br /&gt;  &lt;br /&gt; },&lt;br /&gt; &quot;get&quot;:function(str){&lt;br /&gt;  var c = 0;&lt;br /&gt;  str.replace(/\D+/g,&quot;&quot;).split(&quot;&quot;).reverse().join(&quot;&quot;).replace(/[\d]/g, function(u, i, o){&lt;br /&gt;   c = Verhoeff.d[ c ][ Verhoeff.p[(i+1)&amp;amp;7][parseInt(u,10)] ];&lt;br /&gt;  });&lt;br /&gt;  return Verhoeff.j[c];&lt;br /&gt; }&lt;br /&gt;};&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Verhoeff algorithm validator, by Avraham Plotnitzky. (aviplot at gmail)&lt;br /&gt;String.prototype.verhoeffCheck = (function()&lt;br /&gt;{&lt;br /&gt; var d = [[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;   [1,2,3,4,0,6,7,8,9,5],&lt;br /&gt;   [2,3,4,0,1,7,8,9,5,6],&lt;br /&gt;   [3,4,0,1,2,8,9,5,6,7],&lt;br /&gt;   [4,0,1,2,3,9,5,6,7,8],&lt;br /&gt;   [5,9,8,7,6,0,4,3,2,1],&lt;br /&gt;   [6,5,9,8,7,1,0,4,3,2],&lt;br /&gt;   [7,6,5,9,8,2,1,0,4,3],&lt;br /&gt;   [8,7,6,5,9,3,2,1,0,4],&lt;br /&gt;   [9,8,7,6,5,4,3,2,1,0]];&lt;br /&gt; var p = [[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;   [1,5,7,6,2,8,3,0,9,4],&lt;br /&gt;   [5,8,0,3,7,9,6,1,4,2],&lt;br /&gt;   [8,9,1,6,0,4,3,5,2,7],&lt;br /&gt;   [9,4,5,3,1,2,6,8,7,0],&lt;br /&gt;   [4,2,8,6,5,7,3,9,0,1],&lt;br /&gt;   [2,7,9,3,8,0,6,4,1,5],&lt;br /&gt;   [7,0,4,6,9,1,3,2,5,8]];&lt;br /&gt; var j = [0,4,3,2,1,5,6,7,8,9];&lt;br /&gt;&lt;br /&gt; return function()&lt;br /&gt; {&lt;br /&gt;  var c = 0;&lt;br /&gt;  this.replace(/\D+/g,&quot;&quot;).split(&quot;&quot;).reverse().join(&quot;&quot;).replace(/[\d]/g, function(u, i, o){&lt;br /&gt;   c = d[c][p[i&amp;amp;7][parseInt(u,10)]];&lt;br /&gt;  });&lt;br /&gt;  return (c === 0);&lt;br /&gt; };&lt;br /&gt;})();&lt;br /&gt;&lt;br /&gt;// Verhoeff algorithm producer, by Avraham Plotnitzky. (aviplot at gmail)&lt;br /&gt;String.prototype.verhoeffGet = (function()&lt;br /&gt;{&lt;br /&gt; var d = [[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;   [1,2,3,4,0,6,7,8,9,5],&lt;br /&gt;   [2,3,4,0,1,7,8,9,5,6],&lt;br /&gt;   [3,4,0,1,2,8,9,5,6,7],&lt;br /&gt;   [4,0,1,2,3,9,5,6,7,8],&lt;br /&gt;   [5,9,8,7,6,0,4,3,2,1],&lt;br /&gt;   [6,5,9,8,7,1,0,4,3,2],&lt;br /&gt;   [7,6,5,9,8,2,1,0,4,3],&lt;br /&gt;   [8,7,6,5,9,3,2,1,0,4],&lt;br /&gt;   [9,8,7,6,5,4,3,2,1,0]];&lt;br /&gt; var p = [[0,1,2,3,4,5,6,7,8,9],&lt;br /&gt;   [1,5,7,6,2,8,3,0,9,4],&lt;br /&gt;   [5,8,0,3,7,9,6,1,4,2],&lt;br /&gt;   [8,9,1,6,0,4,3,5,2,7],&lt;br /&gt;   [9,4,5,3,1,2,6,8,7,0],&lt;br /&gt;   [4,2,8,6,5,7,3,9,0,1],&lt;br /&gt;   [2,7,9,3,8,0,6,4,1,5],&lt;br /&gt;   [7,0,4,6,9,1,3,2,5,8]];&lt;br /&gt; var j = [0,4,3,2,1,5,6,7,8,9];&lt;br /&gt;&lt;br /&gt; return function()&lt;br /&gt; {&lt;br /&gt;  var c = 0;&lt;br /&gt;  this.replace(/\D+/g,&quot;&quot;).split(&quot;&quot;).reverse().join(&quot;&quot;).replace(/[\d]/g, function(u, i, o){&lt;br /&gt;   c = d[c][p[(i+1)&amp;amp;7][parseInt(u,10)]];&lt;br /&gt;  });&lt;br /&gt;  return j[c];&lt;br /&gt; };&lt;br /&gt;})();&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/1867990643437115463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/know-more-about-aadhaar-card-uid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1867990643437115463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1867990643437115463'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/know-more-about-aadhaar-card-uid.html' title='Know more about Aadhaar Card ( UID )'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://1.bp.blogspot.com/-irqnMH9dWKs/VtLlEgroQgI/AAAAAAAAAoE/kcfN4R2XOVk/s72-c/test.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-1951618010333741923</id><published>2016-02-25T16:56:00.000+05:30</published><updated>2016-02-29T04:11:15.955+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Sync : Real-time partials with Rails</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&quot;&quot; class=&quot;YOUTUBE-iframe-video&quot; data-thumbnail-src=&quot;https://i.ytimg.com/vi/rant5ez8wqg/0.jpg&quot; frameborder=&quot;0&quot; height=&quot;266&quot; src=&quot;https://www.youtube.com/embed/rant5ez8wqg?feature=player_embedded&quot; width=&quot;100%&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Add Gem:&lt;/div&gt;&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: #222222; font-family: arial, sans-serif; font-size: small; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;br /&gt;Faye:&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot; style=&quot;color: #a71d5d;&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #183691;&quot;&gt;&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;faye&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;&quot; style=&quot;color: #a71d5d;&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #183691;&quot;&gt;&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;thin&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;, &lt;span class=&quot;&quot; style=&quot;color: #0086b3;&quot;&gt;require:&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #0086b3;&quot;&gt;false&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;&quot; style=&quot;color: #a71d5d;&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #183691;&quot;&gt;&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;sync&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;OR&lt;/h3&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Pusher:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot; style=&quot;color: #a71d5d;&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #183691;&quot;&gt;&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;pusher&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class=&quot;&quot; style=&quot;color: #a71d5d;&quot;&gt;gem&lt;/span&gt; &lt;span class=&quot;&quot; style=&quot;color: #183691;&quot;&gt;&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;sync&lt;span class=&quot;&quot;&gt;&#39;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Install Sync:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;bundle&lt;br /&gt;rails g sync:install&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;b&gt;Include:&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Application.js:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot; style=&quot;color: #969896;&quot;&gt;//= require sync&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Application.html.rb: &lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;&quot; style=&quot;margin-bottom: 16px;&quot;&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot;&gt;Ruby &amp;gt; 2.0.0 ::  &lt;/span&gt;&lt;span class=&quot;&quot; style=&quot;font-size: 13.6px; line-height: 1.45;&quot;&gt;&amp;lt;%=&lt;/span&gt;&lt;span class=&quot;&quot; style=&quot;font-size: 13.6px; line-height: 1.45;&quot;&gt; include_sync_config &lt;/span&gt;&lt;span class=&quot;&quot; style=&quot;font-size: 13.6px; line-height: 1.45;&quot;&gt;&lt;span class=&quot;&quot;&gt;%&lt;/span&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; color: #333333; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot;&gt;Ruby &amp;lt;= 2.0.0 ::  &amp;lt;&lt;/span&gt;&lt;span style=&quot;font-size: 13.6px; line-height: 19.72px;&quot;&gt;%#= javascript_include_tag Sync.adapter_javascript_url %&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;span class=&quot;&quot;&gt;Model:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot;&gt;sync &lt;span class=&quot;&quot; style=&quot;color: #0086b3;&quot;&gt;:all&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;&quot;&gt;&lt;span class=&quot;&quot; style=&quot;color: #0086b3;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;span class=&quot;&quot;&gt;Controller:&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot;&gt;To apply on all action : enable_sync&lt;/span&gt;&lt;/pre&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span class=&quot;&quot;&gt;Add on individual action : sync_new / sync_update / sync_destroy &lt;/span&gt;&lt;/pre&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;br /&gt;&lt;div&gt;&lt;span class=&quot;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;Html page:&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;For Post model show/index page:&lt;/pre&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;b&gt;Show/Update :: &lt;/b&gt;&amp;lt;%= sync partial: &#39;post&#39;, collection: Post.all %&amp;gt; &lt;span style=&quot;font-size: 13.6px; line-height: 1.45;&quot;&gt;   &amp;nbsp;&lt;/span&gt;&lt;/pre&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-wrap: normal;&quot;&gt;&lt;span style=&quot;font-size: 13.6px; line-height: 1.45;&quot;&gt;&lt;b&gt;New ::&lt;/b&gt; &amp;lt;%= sync_new partial: &#39;post&#39;, resource: Post.new %&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;br /&gt;Sync Server:&lt;br /&gt;&lt;div style=&quot;color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; line-height: 25.6px;&quot;&gt;&lt;div class=&quot;highlight highlight-source-shell&quot; style=&quot;-webkit-text-stroke-width: 0px; box-sizing: border-box; color: #333333; font-family: &#39;Helvetica Neue&#39;, Helvetica, &#39;Segoe UI&#39;, Arial, freesans, sans-serif, &#39;Apple Color Emoji&#39;, &#39;Segoe UI Emoji&#39;, &#39;Segoe UI Symbol&#39;; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 25.6px; margin-bottom: 16px; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&lt;pre style=&quot;background-color: #f7f7f7; border-radius: 3px; box-sizing: border-box; font-family: Consolas, &#39;Liberation Mono&#39;, Menlo, Courier, monospace; font-size: 13.6px; font-stretch: normal; font-style: normal; font-variant: normal; font-weight: normal; line-height: 1.45; margin-bottom: 0px; margin-top: 0px; overflow: auto; padding: 16px; word-break: normal; word-wrap: normal;&quot;&gt;rackup sync.ru -E production&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style=&quot;color: #0b5394;&quot;&gt;&lt;span class=&quot;_Tgc&quot;&gt;&lt;b&gt;Reference&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;:&amp;nbsp; &lt;a href=&quot;http://www.chrismccord.com/blog/2013/04/21/sync-realtime-rails-partials&quot; target=&#39;_blank&#39;&gt; Realtime render partials in Rails with Sync &lt;/a&gt; &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/1951618010333741923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/sync-real-time-partials-with-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1951618010333741923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/1951618010333741923'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/sync-real-time-partials-with-rails.html' title='Sync : Real-time partials with Rails'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/rant5ez8wqg/default.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-77466784632570187</id><published>2016-02-24T13:05:00.000+05:30</published><updated>2016-03-05T02:41:10.116+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Javascript"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Bind bootstrap tooltip on dynamic elements</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/--qixVgny4HI/Vs1c23aTKAI/AAAAAAAAAlw/KFbWBFoH730/s1600/bootsrap-tooltip.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;192&quot; src=&quot;https://4.bp.blogspot.com/--qixVgny4HI/Vs1c23aTKAI/AAAAAAAAAlw/KFbWBFoH730/s400/bootsrap-tooltip.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;It is pretty simple to bind a tooltip with elements. Generally, it happends when we works with dynamic elements than it creates problem for some js functions. Tooltip is on of them that never works with dynamic element. So for overcoming that problem we have to bind the tooltip on dynamic elements.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example.1 :&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;$(&#39;body&#39;).tooltip({&lt;br /&gt;&amp;nbsp; &amp;nbsp; selector: &#39;.current-div&#39;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;&amp;nbsp; ..................&lt;br /&gt;&amp;nbsp; ..................&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;div class=&quot;current-div&#39;&quot; data-toggle=&quot;tooltip&quot; title=&quot;I am tooltip.&quot;&amp;gt;Hover over me&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;Example.2:&lt;/u&gt;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;u&gt;&lt;br /&gt;&lt;/u&gt;&lt;/b&gt;$(&#39;body&#39;).tooltip({&lt;br /&gt;&amp;nbsp; &amp;nbsp; selector: &#39;[data-toggle]&#39;,&lt;br /&gt;&amp;nbsp; &amp;nbsp; position: &#39;top&#39;&lt;br /&gt;});&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;lt;head&amp;gt;&lt;br /&gt;..................&lt;br /&gt;..................&lt;br /&gt;&amp;lt;/head&amp;gt;&lt;br /&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp; &amp;lt;a href=&quot;#&quot; data-toggle=&quot;tooltip&quot; data-placement=&quot;top&quot; title=&quot;Favorite&quot;&amp;gt;&amp;lt;i class=&quot;fa fa-heart-o&quot;&amp;gt;&amp;lt;/i&amp;gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/77466784632570187/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/bind-bootstrap-tooltip-on-dynamic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/77466784632570187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/77466784632570187'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/bind-bootstrap-tooltip-on-dynamic.html' title='Bind bootstrap tooltip on dynamic elements'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/--qixVgny4HI/Vs1c23aTKAI/AAAAAAAAAlw/KFbWBFoH730/s72-c/bootsrap-tooltip.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-7280046249869573036</id><published>2016-02-22T14:41:00.002+05:30</published><updated>2016-03-05T02:48:01.501+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Programming"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><category scheme="http://www.blogger.com/atom/ns#" term="Solr Search"/><title type='text'>Sunspot Solr Search in Ruby On Rails</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://4.bp.blogspot.com/-yVcQ_ixOaOY/VsrRAl7GBnI/AAAAAAAAAlg/0j4U2nPKT7k/s1600/full-text-search-preview-image.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;276&quot; src=&quot;https://4.bp.blogspot.com/-yVcQ_ixOaOY/VsrRAl7GBnI/AAAAAAAAAlg/0j4U2nPKT7k/s400/full-text-search-preview-image.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;For using solr search in ruby on rails application. We have to use some ruby libraries that intereacts with the solr search So sunspot is on of the good library for working with solr search.&lt;br /&gt;&lt;br /&gt;These gems are required to use in gemfile to install the sunspot libary.&lt;br /&gt;&lt;br /&gt;gem &#39;sunspot_rails&#39;&lt;br /&gt;gem &#39;sunspot_solr&#39;&lt;b&gt; # optional pre-packaged Solr distribution for use in development&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Bundle it!&lt;/b&gt;&lt;br /&gt;bundle install&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Generate a default configuration file:&lt;/b&gt;&lt;br /&gt;rails generate sunspot_rails:install&lt;br /&gt;&lt;br /&gt;&lt;b&gt;If sunspot_solr was installed, start the packaged Solr distribution with:&lt;/b&gt;&lt;br /&gt;bundle exec rake sunspot:solr:start # or sunspot:solr:run to start in foreground&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;u&gt;&lt;b&gt;Setting Up Objects&lt;/b&gt;&lt;/u&gt;&lt;br /&gt;Add a searchable block to the objects you wish to index.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example : 1&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;class Article &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; has_many :posts&lt;br /&gt;&amp;nbsp; searchable do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :title, :body&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :posts do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; posts.map { |post| post.body }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; boolean :featured&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :blog_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :author_id&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integer :category_ids, :multiple =&amp;gt; true&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; double&amp;nbsp; :average_rating&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time&amp;nbsp;&amp;nbsp;&amp;nbsp; :published_at&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; time&amp;nbsp;&amp;nbsp;&amp;nbsp; :expired_at&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string&amp;nbsp; :sort_title do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; title.downcase.gsub(/^(an?|the)/, &#39;&#39;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# Use that in controller&lt;/b&gt;&lt;br /&gt;Post.search do&lt;br /&gt;&amp;nbsp; fulltext &#39;best pizza&#39;&lt;br /&gt;&amp;nbsp; with :blog_id, 1&lt;br /&gt;&amp;nbsp; with(:published_at).less_than Time.now&lt;br /&gt;&amp;nbsp; order_by :published_at, :desc&lt;br /&gt;&amp;nbsp; paginate :page =&amp;gt; 2, :per_page =&amp;gt; 15&lt;br /&gt;&amp;nbsp; facet :category_ids, :author_id&lt;br /&gt;end&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Example : 2&lt;/b&gt;&lt;br /&gt;class Product &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; acts_as_taggable&lt;br /&gt;&amp;nbsp; belongs_to :category&lt;br /&gt;&amp;nbsp; belongs_to :sub_category&lt;br /&gt;&amp;nbsp; belongs_to :child_sub_category, class_name: &quot;SubCategory&quot;&lt;br /&gt;&amp;nbsp; # title is the column of products table&lt;br /&gt;&amp;nbsp; searchable do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :title&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :category do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; category.title&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :sub_category do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sub_category.title&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :child_sub_category do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; child_sub_category.title&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; text :tags do&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; tags.map { |tag| tag.name }&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;b&gt;# Use that in controller&lt;/b&gt;&lt;br /&gt;search = Product.search do&lt;br /&gt;&amp;nbsp; fulltext params[:q]&lt;br /&gt;end&lt;br /&gt;@search = search.results&lt;br /&gt;&lt;div style=&quot;-webkit-text-stroke-width: 0px; color: black; font-family: &#39;Times New Roman&#39;; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; margin: 0px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 1; word-spacing: 0px;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Example : 3&lt;/span&gt;&lt;br /&gt;In this example, you can find there is the association between product and store. In relationship, there is&lt;b&gt; store has_many products&lt;/b&gt; and&lt;b&gt; product belongs_to store.&lt;/b&gt;&amp;nbsp;If you wants to show contents from products table based on the search from stores table columns. Than you can follow the below way of structure&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;class Product &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; belongs_to :store&lt;br /&gt;&amp;nbsp; searchable do&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :title&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :store do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; #Indexing stores columns for searching data&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; [store.city, store.state, store.landmark, store.address, store.pin_code]&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :sub_category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sub_category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :child_sub_category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; child_sub_category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :tags do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; tags.map { |tag| tag.name }class Product &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;b&gt;1 # Use that in controller&lt;/b&gt;&lt;br /&gt;search = Product.search do&lt;br /&gt;&amp;nbsp; &amp;nbsp;# I am only searching from store columns and retriving the list of products&lt;br /&gt;&amp;nbsp; &amp;nbsp;fulltext params[:q], {:fields =&amp;gt; :store}&lt;br /&gt;&amp;nbsp; &amp;nbsp;paginate :page =&amp;gt; params[:page], per_page: 15&lt;br /&gt;end&lt;br /&gt;@search = search.results&lt;br /&gt;&lt;div&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;b&gt;2 # Use that in controller&lt;/b&gt;&lt;br /&gt;search = Product.search do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # This default query is searching from all the respected columns those are in searchable block of products&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; fulltext params[:q]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; # We are filtering the data using location params. So whatever data we got from &quot;fulltext params[:q]&quot; that is being filtered by store attr (store.city, store.state, store.landmark, store.address, store.pin_code)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; fulltext params[:location], {:fields =&amp;gt; :store}&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; paginate :page =&amp;gt; params[:page], per_page: 15&lt;br /&gt;end&lt;br /&gt;@search = search.results&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Example : 4&lt;/span&gt;&lt;br /&gt;In this example, you can find there is the association between product and store. In relationship, there is&lt;b&gt;&amp;nbsp;store has_many products&amp;nbsp;and&amp;nbsp;product belongs_to store.&amp;nbsp;We are doing search from columns of stores table and providing relevant products.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;We are using join because we wants to filter the result using individual columns of store model as mentioned in Query 1.&amp;nbsp;&lt;/b&gt;&lt;br /&gt;In this example, you can find&lt;br /&gt;&lt;b&gt;Query. 1&lt;/b&gt;&lt;br /&gt;fulltext params[:pin_code], {fields: :pin_code}&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;b&gt;Also we can combine and search them from controller as mentioned in Query.2&lt;/b&gt;&lt;/div&gt;&lt;b&gt;Query. 2&lt;/b&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;# It is filtering data of products using [:city, :landmark, :address, :state] that is present in stores table&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: &amp;quot;times new roman&amp;quot;;&quot;&gt;fulltext params[:location], {&lt;/span&gt;&lt;br /&gt;&amp;nbsp; &amp;nbsp; fields: [:city, :landmark, :address, :state]&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;class Product &amp;lt; ActiveRecord::Base&lt;br /&gt;&amp;nbsp; belongs_to :store&lt;br /&gt;&amp;nbsp; # Setting Up Objects &lt;br /&gt;&amp;nbsp; searchable do&lt;br /&gt;&amp;nbsp; &amp;nbsp; integer :store_id&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :title&lt;br /&gt;&amp;nbsp; &amp;nbsp; join(:city, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;&amp;nbsp; &amp;nbsp; join(:state, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;&amp;nbsp; &amp;nbsp; join(:landmark, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;&amp;nbsp; &amp;nbsp; join(:address, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;&amp;nbsp; &amp;nbsp; join(:pin_code, :target =&amp;gt; Store, :type =&amp;gt; :text, :join =&amp;gt; { :from =&amp;gt; :id, :to =&amp;gt; :store_id })&lt;br /&gt;&amp;nbsp; &amp;nbsp; # text :store do&lt;br /&gt;&amp;nbsp; &amp;nbsp; # &amp;nbsp; [store.city, store.state, store.landmark, store.address, store.pin_code]&lt;br /&gt;&amp;nbsp; &amp;nbsp; # end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :sub_category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; sub_category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :child_sub_category do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; child_sub_category.title&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; &amp;nbsp; text :tags do&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; tags.map { |tag| tag.name }&lt;br /&gt;&amp;nbsp; &amp;nbsp; end&lt;br /&gt;&amp;nbsp; end&lt;br /&gt;end&lt;br /&gt;&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;b&gt;1 # Use that in controller&lt;/b&gt;&lt;br /&gt;search = Product.search do&lt;br /&gt;&lt;div&gt;&amp;nbsp; fulltext params[:q]&lt;br /&gt;&amp;nbsp; fulltext params[:pin_code], {fields: :pin_code}&lt;br /&gt;&amp;nbsp; fulltext params[:location], {&lt;br /&gt;&amp;nbsp; &amp;nbsp; fields: [:city, :landmark, :address, :state]&lt;br /&gt;&amp;nbsp; }&lt;br /&gt;&amp;nbsp; paginate :page =&amp;gt; params[:page], per_page: 15&lt;br /&gt;end&lt;br /&gt;@search = search.results&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;If you make a change to the object&#39;s &quot;schema&quot; (code in the searchable block), you must reindex all objects so the changes are reflected in Solr:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;bundle exec rake sunspot:reindex&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# or, to be specific to a certain model with a certain batch size:&lt;/b&gt;&lt;br /&gt;bundle exec rake sunspot:reindex[500,Post] # some shells will require escaping [ with \[ and ] with \]&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# to skip the prompt asking you if you want to proceed with the reindexing:&lt;/b&gt;&lt;br /&gt;bundle exec rake sunspot:reindex[,,true] # some shells will require escaping [ with \[ and ] with \]&lt;br /&gt;&lt;br /&gt;If you are using Rails, objects are automatically indexed to Solr as a part of the save callbacks.&lt;br /&gt;&lt;br /&gt;There are a number of ways to index manually within Ruby:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# On a class itself&lt;/b&gt;&lt;br /&gt;Person.reindex&lt;br /&gt;Sunspot.commit&lt;b&gt; # or commit(true) for a soft commit (Solr4)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# On mixed objects&lt;/b&gt;&lt;br /&gt;Sunspot.index [post1, item2]&lt;br /&gt;Sunspot.index person3&lt;br /&gt;Sunspot.commit &lt;b&gt;# or commit(true) for a soft commit (Solr4)&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;# With autocommit&lt;/b&gt;&lt;br /&gt;Sunspot.index! [post1, item2, person3]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/7280046249869573036/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/sunspot-solr-search-in-ruby-on-rails.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7280046249869573036'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/7280046249869573036'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/sunspot-solr-search-in-ruby-on-rails.html' title='Sunspot Solr Search in Ruby On Rails'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://4.bp.blogspot.com/-yVcQ_ixOaOY/VsrRAl7GBnI/AAAAAAAAAlg/0j4U2nPKT7k/s72-c/full-text-search-preview-image.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-6060629014437925268</id><published>2016-02-20T01:29:00.001+05:30</published><updated>2016-02-29T04:11:15.959+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="IT News"/><category scheme="http://www.blogger.com/atom/ns#" term="Technologies"/><title type='text'>Freedom 251 : Specifications,How to Book and Concerns</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 20px; padding: 0px; vertical-align: baseline;&quot;&gt;Ringing Bells,, a little-know Noida-based company, has launched the Freedom 251 smartphone in New Delhi on 17-Feb-2016. &amp;nbsp;At the launch, the company said you can buy the Rs. 251 smartphone by booking on&amp;nbsp;the official website&amp;nbsp;&lt;a href=&quot;http://freedom251.com/&quot; style=&quot;border: 0px; color: #ff8f0a; margin: 0px; padding: 0px; vertical-align: baseline;&quot; target=&quot;_blank&quot;&gt;freedom251.com&lt;/a&gt;&amp;nbsp;from 6 am on February 18 to 8 pm on February 21.The deliveries, however, &amp;nbsp;will be completed four months later – by June 30, 2016. This article covers Freedom 251, which might be&amp;nbsp;the cheapest smartphone in the world, its specifications, What are the concerns about Freedom 251,Why is it so cheap and How to Book?&lt;/div&gt;&lt;h3 style=&quot;background-color: white; border: 0px; color: brown; font-family: Arial, Helvetica, sans-serif; font-size: 20px; font-weight: normal; line-height: 20px; margin: 0px 0px 16px; padding: 0px; vertical-align: baseline;&quot;&gt;Specifications of Freedom 251&lt;/h3&gt;&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 20px; padding: 0px; vertical-align: baseline;&quot;&gt;On Surface of it Freedom 251 seems good. Specifications are given below.&lt;/div&gt;&lt;ul style=&quot;background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin: 0px 20px 20px 0px; padding: 0px 0px 0px 40px; vertical-align: baseline;&quot;&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Operating System : Android&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Android Version : 5.1 Lollipop&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Processor : 1.3 GHz Quad Core&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;RAM : 1 GB&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;ROM (Internal Storage) : 8 GB&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Expandable Memory : Upto 32 GB&amp;nbsp;via a microSD card.&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Front Camera : 0.3 MP&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Rear&amp;nbsp;Camera : 3.2 MP&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Screen Size (Display) : 4″ Inch with&amp;nbsp;a resolution of 540 pixels by 960 pixels.&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Battery : 1450 mAh&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Price : 251 Rupees Only&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;Dual-SIM 3G capable phone. Connectivity options include Wi-Fi, Bluetooth, FM. Sensors on the phone include Proximity sensor.&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The Freedom 251 smartphone ships with a number of apps pre-installed on it like Women Safety, Swachh Bharat, WhatsApp, Facebook, and YouTube.&lt;/li&gt;&lt;li style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The phone will come with a standard warranty of 1 year. According to the company’s website, “this warranty of the product extends for a period of 12 months for the host unit, 6 months for battery and charger, and 3 months for earphone commencing from the date of purchase.”&lt;/li&gt;&lt;/ul&gt;&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 20px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span id=&quot;more-18601&quot; style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;wp-caption aligncenter&quot; id=&quot;attachment_18605&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 3px; border: 1px solid rgb(221, 221, 221); color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin: 10px auto; max-width: 100%; padding: 4px 0px 0px; text-align: center; vertical-align: baseline; width: 550px;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://2.bp.blogspot.com/-FC67-W17QqA/VseGKj9d4KI/AAAAAAAAAlQ/_kW6yEKw0Xo/s1600/Ringing-Bells-Freedom-251.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;267&quot; src=&quot;https://2.bp.blogspot.com/-FC67-W17QqA/VseGKj9d4KI/AAAAAAAAAlQ/_kW6yEKw0Xo/s400/Ringing-Bells-Freedom-251.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;wp-caption-text&quot; style=&quot;border: 0px; font-size: 11px; line-height: 17px; padding: 0px 4px 5px; vertical-align: baseline;&quot;&gt;Ringing Bells Freedom 251&lt;/div&gt;&lt;/div&gt;&lt;div style=&quot;background-color: white; border: 0px; color: #555555; font-family: Arial, Helvetica, sans-serif; font-size: 13px; line-height: 20px; margin-bottom: 20px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;span style=&quot;border: 0px; color: red; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;strong style=&quot;border: 0px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;The Freedom 251 looks like yet another iPhone clone&lt;/strong&gt;&lt;/span&gt;, not only on the exterior (complete with the circular home button) but even the app icons appear like a rip-off of what’s found on iOS.&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/6060629014437925268/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2016/02/freedom-251-specificationshow-to-book.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6060629014437925268'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6060629014437925268'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2016/02/freedom-251-specificationshow-to-book.html' title='Freedom 251 : Specifications,How to Book and Concerns'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://2.bp.blogspot.com/-FC67-W17QqA/VseGKj9d4KI/AAAAAAAAAlQ/_kW6yEKw0Xo/s72-c/Ringing-Bells-Freedom-251.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-6973336863781374077</id><published>2015-12-07T14:02:00.001+05:30</published><updated>2016-03-05T02:48:01.498+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="Make Money Online"/><title type='text'>Make Money with GoDaddy. Simplest way to earn !</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://4.bp.blogspot.com/-NWmTtU-p-sg/VmVEV0dCJUI/AAAAAAAAAkg/RgSM6mqtFEk/s1600/make-money-online.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;279&quot; src=&quot;http://4.bp.blogspot.com/-NWmTtU-p-sg/VmVEV0dCJUI/AAAAAAAAAkg/RgSM6mqtFEk/s320/make-money-online.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;GoDaddy is the largest domnain and hosting selling platform. Now its the time to get some commision on selling or buying the products from go daddy. GoDaddy provides varity of commision based programs. Godaddy offers affilate and domain parking brogram, if you will integrate any of the program from both of them than you can start generating good revenues right away. Also, there is a reseller program to resell godaddy products and can have good commisions. If you are interested to open your own online store to sell godaddy products than you can do that as well.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Affiliate Programs&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;In GoDaddy affliate program, if any customer is refered by you and making any of the godaddy product purchase than you can get upto 40% commission depending upon your product or serivce. You will get a custom url to promote on your website, blog or forum. It is free service.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;CashParking&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;In Cash parking program, if there is an domain that you are not using at present than you can park your page with the CashParking program of godaddy. GoDaddy will display adds on your page and you can generate 60% to 80% revenue when user clicks on ads.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Reseller Program&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;In API Reseller Service, if you wants to sell GoDaddy service under your brand than you can go with that reseller service of GoDaddy. You can purchase a annual plan of that service on the go.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;Build an Online Store&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;In API Reseller Service, you can open an online store and sell your own products and services (See Resources.) No programming is required, you&#39;ll have access to 24/7 technical support and you can accept credit cards directly on your website. You&#39;ll have to pay a monthly fee directly to GoDaddy to use the service, but you can set your own prices for the products you sell.&lt;br /&gt;CashParking&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;References&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;&lt;a href=&quot;http://www.godaddy.com/affiliates/affiliate-program.aspx&quot;&gt;GoDaddy: Affiliate Program&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://in.godaddy.com/parking/parking-details.aspx?&quot;&gt;GoDaddy: Domain Name Parking&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://in.godaddy.com/reseller/domain-api&quot;&gt;GoDaddy: API Reseller&lt;/a&gt;&lt;br /&gt;&lt;a href=&quot;https://in.godaddy.com/ecommerce/online-store.aspx&quot;&gt;GoDaddy: Shopping Cart&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/6973336863781374077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2015/12/make-money-with-godaddy-simplest-way-to.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6973336863781374077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/6973336863781374077'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2015/12/make-money-with-godaddy-simplest-way-to.html' title='Make Money with GoDaddy. Simplest way to earn !'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-NWmTtU-p-sg/VmVEV0dCJUI/AAAAAAAAAkg/RgSM6mqtFEk/s72-c/make-money-online.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-860713881476357877.post-118704363959743353</id><published>2015-12-07T13:06:00.001+05:30</published><updated>2016-03-05T02:41:10.096+05:30</updated><category scheme="http://www.blogger.com/atom/ns#" term="MongoDB"/><category scheme="http://www.blogger.com/atom/ns#" term="Ruby On Rails"/><title type='text'>Mongo query with aggregate function for rails</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://3.bp.blogspot.com/-zYPOOF0pTR4/Vsd9GwJRi0I/AAAAAAAAAlA/uCqxnfbJJlI/s1600/aggregation-pipeline.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;287&quot; src=&quot;https://3.bp.blogspot.com/-zYPOOF0pTR4/Vsd9GwJRi0I/AAAAAAAAAlA/uCqxnfbJJlI/s400/aggregation-pipeline.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;Group by state and created at:&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&amp;nbsp; &amp;nbsp;Mongo query to count no. of questions and votes by different gender with their total sum.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; group_by = if @filter[:by] == &#39;geolocation&#39;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ({ &quot;country_code&quot;: &quot;$country_code&quot;, &quot;state_code&quot;: &quot;$state_code&quot; })&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; else&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ({ &quot;day&quot;: {&quot;$dayOfMonth&quot;: &quot;$created_at&quot;}, &quot;month&quot;: {&quot;$month&quot;: &quot;$created_at&quot;}, &quot;year&quot;: {&quot;$year&quot;: &quot;$created_at&quot;} })&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; end&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; data = Question.collection.aggregate([&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &quot;$match&quot;:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;asked_to&quot;: @filter[:loggedin_user_id],&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;created_at&quot;: { &quot;$gte&quot;: filter[:from_date], &quot;$lt&quot;: filter[:to_date] }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }, &amp;nbsp; &amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &quot;$group&quot;:&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; { &quot;_id&quot;: group_by,&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;male&quot;: {&quot;$sum&quot;:{&quot;$cond&quot;:[{&quot;$eq&quot;:[&quot;$asker_gender&quot;, &quot;male&quot;]},1,0]} },&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;female&quot;: {&quot;$sum&quot;:{&quot;$cond&quot;:[{&quot;$eq&quot;:[&quot;$asker_gender&quot;, &quot;female&quot;]},1,0]}},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;other&quot;: {&quot;$sum&quot;:{&quot;$cond&quot;:[{&quot;$eq&quot;:[&quot;$asker_gender&quot;, &quot;other&quot;]},1,0]}},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;total&quot;: {&quot;$sum&quot;:1},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;male_votes&quot;: {&quot;$sum&quot;: {&quot;$cond&quot;: [ { &quot;$gte&quot;: [ &quot;$asker_gender&quot;, &quot;male&quot; ] }, &quot;$requestor_count&quot;, 0 ]}},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;female_votes&quot;: {&quot;$sum&quot;: {&quot;$cond&quot;: [ { &quot;$gte&quot;: [ &quot;$asker_gender&quot;, &quot;female&quot; ] }, &quot;$requestor_count&quot;, 0 ]}},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;other_votes&quot;: {&quot;$sum&quot;: {&quot;$cond&quot;: [ { &quot;$gte&quot;: [ &quot;$asker_gender&quot;, &quot;other&quot; ] }, &quot;$requestor_count&quot;, 0 ]}},&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &quot;total_votes&quot;: {&quot;$sum&quot;: &quot;$requestor_count&quot;}&amp;nbsp;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; ])&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://blog.clecotech.com/feeds/118704363959743353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://blog.clecotech.com/2015/12/mongo-query-with-aggregate-function-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/118704363959743353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/860713881476357877/posts/default/118704363959743353'/><link rel='alternate' type='text/html' href='http://blog.clecotech.com/2015/12/mongo-query-with-aggregate-function-for.html' title='Mongo query with aggregate function for rails'/><author><name>Unknown</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://3.bp.blogspot.com/-zYPOOF0pTR4/Vsd9GwJRi0I/AAAAAAAAAlA/uCqxnfbJJlI/s72-c/aggregation-pipeline.png" height="72" width="72"/><thr:total>0</thr:total></entry></feed>