2016-04-09 3 views
0

Ich bin komplett neu in Rails und ich habe eine Datenbank, die auf eine bestimmte Seite je nach der Suche des Benutzers verweist, aber es wird mir immer die ID geben.Ruby on Rails - Verschiedene Namen für die URL

Zum Beispiel, wenn ein Benutzer sucht, bekomme ich "localhost: 3000/fruit/1" anstelle von "localhost: 3000/fruit/apple". Kann jemand die URL von einer ID zu einem Namen wechseln?

+0

Sie nur ein Juwel wie [friendly_id] (https://github.com/norman/friendly_id#rails-quickstart) nutzen könnten. – spickermann

Antwort

0

Sie müssen eine "to_param" -Methode in dem Modell definieren, für das Sie eine Verknüpfung erstellen, z.

class Fruit < ActiveRecord:Base 
    def to_param 
    name 
    end 
end 

Dann in Ihrem Controller benötigen Sie den Fund für die Show Aktion ändern, indem Sie das Attribut finden Sie in Ihrer ‚to_param‘ Methode verwenden, z.B.

@fruit = Fruit.find_by(name: params[:id]) 

Siehe http://api.rubyonrails.org/classes/ActiveRecord/Integration.html#method-i-to_param für weitere Details