luigi
October 11, 2007, 7:37pm
1
Hi,
in my ruby application I manage a MySQL db.
The url are generated by the classic command line link_to or url_for.
For image I use the command:
<img src="<%= url_for(:action=>“picture”, :id=>@pictures.id)-%>" …
so the URL generated is:
/view/picture/500
I would like to generate an URL like this one:
/view/picture/500/neroburning.jpg
Can you help me?
Thank you very much!
luigi
October 11, 2007, 8:03pm
2
I don’t see the point to use url_for in image :S:S
Take a look at image_tag
image_tag(“icon.png”) # =>
image_tag(“icon.png”, :size => “16x10”, :alt => “Edit Entry”) # =>
image_tag("/icons/icon.gif", :size => “16x16”) # =>
luigi
October 11, 2007, 11:32pm
3
Hi,
thank for your answer but I need to know the answer to my question
because the images of my site load from the db!
Can you help me to write:
/picture/500-neroburning.jpg
or
/view/picture/500/neroburning.jpg
instead of the simple:
/view/picture/500
Thanks
luigi
October 12, 2007, 1:28am
4
On 10/11/07, Luigi [email protected] wrote:
Hi,
thank for your answer but I need to know the answer to my question
because the images of my site load from the db!
Can you help me to write:
/picture/500-neroburning.jpg
Google for acts_as_sluggable
luigi
October 12, 2007, 1:29am
5
On 10/11/07, Bob S. [email protected] wrote:
Oh wait a minute. Are you wanting the .jpg so the browser will treat
it as an image? If so, you need to be setting the correct content type
on your response. What does your controller action look like? How are
you sending the image?
luigi
October 12, 2007, 1:42am
6
On Oct 11, 2007, at 7:29 PM, Bob S. wrote:
Google for acts_as_sluggable
Oh wait a minute. Are you wanting the .jpg so the browser will treat
it as an image? If so, you need to be setting the correct content type
on your response. What does your controller action look like? How are
you sending the image?
Look at the Rails doc for “send_data” (or send_file)
-Rob
Rob B. http://agileconsultingllc.com
[email protected]
luigi
October 12, 2007, 9:36am
7
Hi,
my problem isn’t the loading of image from db.
I already use send_data etc… and the browser works properly.
The matter is that the compiling of url of ruby isn’t friendly for the
search engine spider because it is written like this:
/view/picture/500
I would like to customize the url, also those not referring to images,
like this:
/view/picture/500/neroburning.jpg
or
/picture/500-neroburning.jpg
The site is softwarewin.net .
Thank you!
luigi
October 12, 2007, 3:12pm
8
On 10/12/07, Luigi [email protected] wrote:
Hi,
my problem isn’t the loading of image from db.
I already use send_data etc… and the browser works properly.
The matter is that the compiling of url of ruby isn’t friendly for the
search engine spider because it is written like this:
/view/picture/500
In that case, look at acts_as_sluggable. Or create a route that
includes the picture name.
luigi
October 13, 2007, 1:22am
9
Hi,
I had written a site in ruby…but I don’t know how to use the
plugins…
How can I use acts_as_sluggable on my webhosting?
Thank you very much!
luigi
October 13, 2007, 1:33am
10
Luigi wrote:
I would like to customize the url, also those not referring to images,
like this:
/view/picture/500/neroburning.jpg
or
/picture/500-neroburning.jpg
The easiest way is to overwrite the to_param method in your model.
Example:
class Image
def to_param
%{#{ id }-#{ filename }}
end
end
So you’d get something like this in your URL:
23-neroburning.jpg
luigi
October 13, 2007, 1:34am
11
Daniel W. wrote:
Luigi wrote:
I would like to customize the url, also those not referring to images,
like this:
/view/picture/500/neroburning.jpg
or
/picture/500-neroburning.jpg
The easiest way is to overwrite the to_param method in your model.
Example:
class Image
def to_param
%{#{ id }-#{ filename }}
end
end
So you’d get something like this in your URL:
23-neroburning.jpg
Note that you must pass in the object itself when generating links:
link_to(image_tag(…), :action => ‘…’, :id => image) # Good
link_to(image_tag(…), :action => ‘…’, :id => image.id) # Bad
luigi
October 13, 2007, 12:36pm
12
But is this way slower than the search by the sample id?
luigi
October 14, 2007, 5:35pm
13
I’m going on solution:
to do other similar modify I have used the routes.rb:
map.software ‘view/:id/software/:title’,
:controller=>‘view’,
:action=>‘software’
in view.rhtml I’m using:
href="<
%=software_url(:id=>guide.id,:title=>guide.title.split.join("-"))-%>"
that generate:
…/view/92/software/Spyware-Doctor
so I can introduce the name of the software separated by “/”.
This way will work also for “picture”.
The fantastic thing is that routes.rb works also if I write:
map.software ‘view/:id/software/:title.html’,
:controller=>‘view’,
:action=>‘software’
so the generated url becames:
…/view/92/software/Spyware-Doctor.html
It’s great!