location of images

hello all,

I'm new to RoR. I am reading Agile Development etc. and I have
completed a tutorial that explains the differences between rails 2.0
and rails 2.1.

Still some questions are unanswered by the book. I hope you can help
me with the most intriguing one:
I have created a scaffold for model 'movie'. After some iterations I
have manually added a admin controller with views.
It appears that the image-links from the movie-view result in a get
from the image in the directory public/images, whereas the image links
from the admin views get the images another place.

Can you explain WHY this happens and what I can do to p be able to
- use public/images in both cases
- use the same subdirectory of a view directory in both cases?

thanks very much!
Ruud

Please can u paste the code in question and i will tell u, thanks.

Rails by default will look into the public/images for any image name u
give.

If u have yr image in a separate folder like public/my_images folder
then in yr view file u need to mention the image path as
"my_images/image.jpg"

in fact, I don't use the login_controller which uses the admin layout.
What's in a name.

There is a difference between a list of the movies from the login view
and the movies view.
The admin layout includes the following lines:

        <% if session[ :user_id ] %>
            <% gebruiker = User.find_by_id( session[ :user_id]).naam -
%>
            <h1><%= gebruiker -%></h1>
            <%= link_to( 'overzicht films', :action => 'list_movies' )
-%><br/>
        <% else %>
            <h1>no user</h1>
        <% end %>

I believe the issue is with the way you're rendering the image tag.
This line:

<td><img src="images/<%= movie.one_sheet_url %>"/></td>

Is a *relative path*. You should be able to use an absolute path "/
images/..." which will be absolute with respect to your Rails
application.

It's probably also worth mentioning that, if you're storing images in
the standard /public/images folder, you can use a rails helper:

<td><%= image_tag move.one_sheet_url, :alt=>"#{movie.name} pic" %></

I believe the issue is with the way you're rendering the image tag.
This line:

<td><img src="images/<%= movie.one_sheet_url %>"/></td>

Is a *relative path*. You should be able to use an absolute path "/
images/..." which will be absolute with respect to your Rails
application.

Yes, that is true. It IS relative. I am going to implement a helper
function as you suggested. That is much better.
But I still would like to know why movie.one_sheet_url() gives me
another result when called from two different locations
(in this case views/movies/index.html.erb and views/ and
views/login/list_movies.html.erb)

Rails has so much magic going on that a newbie like me gets a bit
dizzy.

It's probably also worth mentioning that, if you're storing images in
the standard /public/images folder, you can use a rails helper:

<td><%= image_tag move.one_sheet_url, :alt=>"#{movie.name} pic" %></
>

Thanks, I wil certainly try this. Good opportunity to have a look at
helper functions as well!

Ruud

Because it's RELATIVE so if in one case it's relative to views/movies,
and in the other to views/login

+1... sorry I should have been more specific.