Can not render pre designed html template from public directory

Hello,
I have a designed template public/test/show.html with following sample
html code. There is a css file and images in the mentioned directory.

Post: *{post_name}*

I have a posts controller and need to render this template from
posts#show without changing anything under *public/test *directory. And,
replace {post_name}
by post name.

I’ve tried that in many ways to do that but couldn’t. Specially, the css
and images path not working any way. It’s always looking under
http://localhost:3000/posts/{....}

I will be pleased if anyone can help me regarding this. Thanks in
advance for your help.

On 3 December 2012 20:36, John [email protected] wrote:

I've tried that in many ways to do that but couldn't. Specially, the css and images path not working any way. It's always looking under http://localhost:3000/posts/{....}

I am not sure what you are trying to do exactly but I think your whole
approach is probably wrong, it is certainly not conventional. I
suggest you work right through a good tutorial such as
railstutorial.org (which is free to use online) so that you will
understand the basics of rails.

Colin

As Colin L. stated you are not following the Rules of Rails. Why do you
want to put a template in the public folder and create a headache for
yourself. I suggest doing it the Rails way. Put your templates in
/view/controller/show.html.erb
Your basic controller actions CRUD, have corresponding views(template)

On Dec 3, 4:36pm, John [email protected] wrote:

I have a posts controller and need to render this template from posts#show
without changing anything under *public/test *directory. And, replace
{post_name}
by post name.

I’ve tried that in many ways to do that but couldn’t. Specially, the css and
images path not working any way. It’s always looking
underhttp://localhost:3000/posts/{…}

Your CSS link is relative (doesn’t begin with a / ) so the browser
will think the path for it is /posts/test/css/style.css.

Making the css and any asset links absolute will fix this. You could
if you really didn’t want to change the file, add a route for that
path and render the css file in response but that seems a bit over the
top. Alternatively rewrite any of those relative links in the file
before you send the response (I’d recommend using nokogiri to do this
rather than tearing apart the HTML with regular expressions). I’m also
sure why this isn’t a regular erb/haml template though instead of
inventing your own templating scheme.

Fred

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs