Rails 3 - Suchen Sie nach Namen und nicht id
Ich versuche zu lernen, RoR -, Gebäude-meine erste app, ein basic-Anwendung Bestand. Ich habe versucht, auf der Suche rund um, konnte aber nicht die richtige syntax, so dass ich dachte, ich würde bitten.
Hier ist mein set up:
Modell
class Item < ActiveRecord::Base
belongs_to :supplier
class Supplier < ActiveRecord::Base
has_many :items
Elemente-Controller
@items = Item.find_all_by_supplier_id '1'
Diese wird wieder die Daten, die ich will, aber ich hoffte, dass die Eingabe der Lieferanten-Namen in den controller so, dass, wenn die ID nicht übereinstimmen, wird es immer noch richtig funktionieren.
Hoffe das ist genug info, danke!
InformationsquelleAutor rmp | 2011-04-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie umkehren, Ihre Methode bisschen und versuchen:
Schienen erstellt dynamische find_by_* und find_all_by_* Methoden für die Suche. Statt abrufen von Nachrichten durch den supplier_id, empfehle ich, Sie lassen Schienen dies für Sie tun mit den Verbänden, die Sie eingerichtet haben, wie im code-snippet oben. Intern, dieser verwendet immer noch die supplier_id, aber Schienen ist der Umgang mit dem Prozess statt.
Invers, ist dies auch möglich, so dass, wenn Sie einen Gegenstand bei sich haben und wollen, dass die Lieferanten, die Sie tun können:
InformationsquelleAutor Gazler
InformationsquelleAutor fl00r
Wo
colname
ist der nameSupplier table column
wollen wir überprüfen unsere parameter-Wert. In den Schienen können wir nur Spalte Anhängen-Namen mit derfind_by_
wie oben gezeigt wird, und Schienen wird Ihnen zeigen, dass es Magie 😉 . Hier ist die Referenz in DocInformationsquelleAutor ImranNaqvi