Method inside method in controller

I’m trying to follow DRY way of coding. I decided to make my code cleanes.

Basically, app has 2 types of what to show to user, depending on content. So I want to set up inside show method conditional, and then two different inner methods for conditional. And, of cource, two different views for this methods.

For exapmle:

def show

If conditional





def show_empty

#some code


def show_with_content

#some code



And I want controller to request show_emty.html.erb and show_with_content.html.erb, based on what inner method was called.

Because my view code became really dirty and overcomplicated.

But trying to do that, I faced several errors. (nil class, wrong route).

What should I set up in routes? And how explain to Rails that it should not to seek show.html.erb, but view for inner methods?

The concept is sound. However, with no details about what your code is
actually doing, real error messages, and the like, it's very hard to
offer any sort of help. Please read through the rails debugging
guide[1] to see if that will help you.


A further suggestion, since it seems the OP is lacking some knowledge
of Rails basics such as routing, is to work right through a good
tutorial such as, which is free to use online, in
order to better understand the basics.

Also for routing look a the rails guide on routing (and all the other
guides in fact).