<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Rubyonrails - Tag - // TODO: Fix Later (2019)</title><link>https://viktor.dev/en/tags/rubyonrails/</link><description>Rubyonrails - Tag - // TODO: Fix Later (2019)</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>email@viktor.dev (Viktor Chukhantsev)</managingEditor><webMaster>email@viktor.dev (Viktor Chukhantsev)</webMaster><copyright>© Viktor Chukhantsev</copyright><lastBuildDate>Fri, 26 Jul 2019 03:03:33 +0700</lastBuildDate><atom:link href="https://viktor.dev/en/tags/rubyonrails/" rel="self" type="application/rss+xml"/><item><title>Ruby on Rails Engine vs Mountable App</title><link>https://viktor.dev/en/2019-07-26-ruby-on-rails-enginve-vs-mountable-app/</link><pubDate>Fri, 26 Jul 2019 03:03:33 +0700</pubDate><author>email@viktor.dev (Viktor Chukhantsev)</author><guid>https://viktor.dev/en/2019-07-26-ruby-on-rails-enginve-vs-mountable-app/</guid><description><![CDATA[<h1 id="full-engine">Full Engine</h1>
<p>With a full engine, the parent application inherits the routes from the engine. It is not necessary to specify anything in <strong>parent_app/config/routes.rb</strong>. Specifying the gem in <strong>Gemfile</strong> is enough for the parent app to inherit the models, routes etc. The engine routes are specified as:</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-ruby">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="c1"># new_engine/config/routes.rb </span>
</span></span><span class="line"><span class="cl"><span class="no">Rails</span><span class="o">.</span><span class="n">application</span><span class="o">.</span><span class="n">routes</span><span class="o">.</span><span class="n">draw</span> <span class="k">do</span> 
</span></span><span class="line"><span class="cl">  <span class="c1"># whatever </span>
</span></span><span class="line"><span class="cl"><span class="k">end</span></span></span></code></pre></div></div>
<p><em>No namespacing of models, controllers, etc. These are immediately accessible to the parent application.</em></p>]]></description></item><item><title>Split Ruby on Rails routes into multiple smaller files</title><link>https://viktor.dev/en/2019-07-26-split-ruby-on-rails-routes/</link><pubDate>Fri, 26 Jul 2019 02:51:33 +0700</pubDate><author>email@viktor.dev (Viktor Chukhantsev)</author><guid>https://viktor.dev/en/2019-07-26-split-ruby-on-rails-routes/</guid><description><![CDATA[<p>One time I faced fact that my application is big enough and <strong>routes.rb</strong> look like a mess. I’ve managed that this way.</p>
<p>I added routes directory to application config directory and added it in <strong>autoload_paths</strong> to ensure that routes are reloaded when these files change.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-ruby">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="c1"># config/application.rb</span>
</span></span><span class="line"><span class="cl"><span class="n">config</span><span class="o">.</span><span class="n">autoload_paths</span> <span class="o">&lt;&lt;</span> <span class="no">Rails</span><span class="o">.</span><span class="n">root</span><span class="o">.</span><span class="n">join</span><span class="p">(</span><span class="s1">&#39;config/routes&#39;</span><span class="p">)</span></span></span></code></pre></div></div>
<p>Then moved necessary routes to small files like this.</p>]]></description></item></channel></rss>