views:

842

answers:

3

I have QuestionController I now have AnotherQuestionController with actions which should render using templates and partials in app/views/question/ Is this possible? Seems like it should be.

I've tried

render :template => "question/answer"

but answer.html.erb includes partials and I get errors like

"Missing template another_question/_my_partial.erb in view path"

So is there a way to tell Rails "treat AnotherQuestionController as if its QuestionController and look for views and partials in app/views/question"? Or will I have to create app/views/another_question - which will cause duplication (this can't be the Rails way).

Thanks

+2  A: 

Template rendering should actually work

 render :template => "question/answer"

The problem you were having is from the partials looking in the wrong place. The fix is simple, just make your partials absolute in any shared templates. For example, question/answer.html.erb should have

<%= render :partial => 'question/some_partial' %>

rather than the usual

<%= render :partial => 'some_partial' %>
Ben Hughes
This did not work I'm afraid
Paul
oh right. On second examination I've found the actual issue
Ben Hughes
A: 

You could try the inherit_views plugin (http://github.com/ianwhite/inherit_views/tree/master) I mentioned here in the answer to this question.

Shadwell
Thanks, I'll look into this.Seems like a lot of work though doesn't it. I would have thought render() would have taken options allowing to specify another controller's views/partials. Ah well.
Paul
A: 

You can achieve it with:

render 'question/answer'
klew