2016-04-19 7 views
4

Ich versuche herauszufinden, wie man eine App mit Rails 4 erstellt. Ich bleibe bei grundlegenden Dingen hängen und ich bin anscheinend nicht in der Lage, die Prinzipien zu identifizieren, die ich verwenden soll.Wie definiere ich einen Linkpfad?

Ich habe ein Profilmodell und ein Industriemodell. Die Verbände sind:

Profil:

has_and_belongs_to_many :industries, join_table: 'industries_profiles' 

Industrie:

has_and_belongs_to_many :profiles, join_table: 'industries_profiles' 

In meinem Profil zeigen Seite, bin ich jetzt versuchen, die Industrie Seite verlinken:

<% @profile.industries.limit(5).each do |industry| %> 

    <%= link_to industry.sector.upcase, industry_path(@industry) %> 

<% end %> 

Ich kann nichts finden, was für diesen Link funktioniert.

Ich habe folgendes versucht:

industry_path(@profile.industry) 
industry_path(@profile.industry_id) 
industry_path(industry) 
industry_path(profile.industry) 
industry_path(industry.id) 
industry_path(industry_id) 

aber alle von ihnen sind Vermutungen. Ich weiß nicht, wie ich das API-Dock vorbereiten soll, damit ich seinen Inhalt nicht verstehen kann.

Kann jemand sehen, wie man zu einer Erscheinenseite der anderen Seite der HABTM Vereinigung für einen einzelnen Rekord verbindet?

+0

Was halten Sie Ihre routes.rb Datei haben? 'industry_path (industry)' sollte man verwenden. –

+0

Ich habe: Ressourcen: Branchen – Mel

+0

Wenn ich das versuche, wenn ich über den Link schweben, zeigt es einen Pfad, der die richtige Industrie-ID enthält. Aber ich kann nicht darauf klicken - nichts passiert – Mel

Antwort

0

Sie können eine Liste Ihrer Routen abrufen, indem Sie in Ihrer Befehlszeile rake routes | grep industry ausführen. Dadurch erhalten Sie eine Tabelle mit dem Präfix, der Aktion und dem uri-Muster. Zum Beispiel:

industries GET /industries(.:format)   industries#index 
       POST /industries(.:format)   industries#create 
new_industry GET /industries/new(.:format)  industries#new 
edit_industry GET /industries/:id/edit(.:format) industries#edit 
    industry GET /industries/:id(.:format)  industries#show 
       PATCH /industries/:id(.:format)  industries#update 
       PUT /industries/:id(.:format)  industries#update 
       DELETE /industries/:id(.:format)  industries#destroy 

In Ihrem Fall sollten Sie bei dem show Weg suchen. Welches ist Industrie und Sie hängen _path an das Ende von was auch immer Ihr Präfix ist oben, die industry_path herauskommt. Und da Sie beim Definieren Ihrer Schleife Ihre Variable industry deklariert haben, können Sie diese anstelle der Instanzvariablen verwenden.

Kurze Antwort: industry_path(industry)