2012-04-01 13 views
0

Ich habe eine Anwendung, in der es Bier-, Bierkasten- und Trinkermodelle gibt. Das Bier im Bierkasten kann sortiert werden.Wie man Informationen über spezifisches Bier in einem Bierkasten anzeigt

Ich habe ein bisschen Mühe, die Informationen eines bestimmten Bieres in einem Bierkasten zu zeigen. Derzeit notiert ich alle Biere in der beercase der Trinker, so habe ich eine Liste von Bier Teil _beerlist:

<h1>beer you added</h1> 
<% @drinker.beercase_line_items.each do |beer|%> 
<p><%= link_to beer.beer.name, specificbeer_drinker_drinker_beercase_pages_path(@drinker) %></p> 
<%end%> 

Ich habe versucht, dies aber tun

<h1>beer you added</h1> 
<% @drinker.beercase_line_items.each do |beer|%> 
<p><%= link_to beer.beer.name, specificbeer_drinker_drinker_beercase_pages_path(@drinker,beer) %></p> 
<%end%> 

gibt mir ein beer.20 in der Mitte der URL, nicht beer/20 was ich für ihn produzieren wollte. Mache ich das richtig?

Routen

resources :drinker do 
    resources :pages do 
     collection do 
      get :beercaselist # Name of beercase that can be added example:extrabucket-beercase 
      get :beercase # Show the beercase information and it has a link to add beer 
     end 
    end 
     resources :drinker_beercase # Controller to add what beercase that the drinker added 
      resources :drinker_beercase_pages do # Static page controller 
       collection do 
        get :beerlist # Show the beerlist 
        get :specificbeer # Show the specificbeer 
       end 
      end 
     resources :beercase_line_items # Controller to add what beer and what beercase 
end 
+1

Ihr Code macht mich durstig ;-) – aKzenT

+0

Könnten Sie Ihre Routes-Datei und vielleicht die Ausgabe von 'Rake-Routen' posten? –

+0

@jeffSmith: Routen hinzugefügt ich habe nur Kommentare hinzugefügt, weil Sie mit meiner Namenskonvention durcheinander bringen können danke – Led

Antwort

0

Okay, mit mir so ertragen, ich glaube nicht, dass ich Ihre Routen ganz verstehen, aber ich denke, das ist Ihr Problem sein kann:

Ihre specificbeer_drinker_drinker_beercase_pages Route sieht aus wie dies:

/drinker/:drinker_id/drinker_beercase_pages/specificbeer(.:format) 

, dass nur die :drinker_id Parameter in ihm hat. Diese Route dient zum Anzeigen einer Liste spezifischer Biersorten, nicht eines einzelnen Bieres. Wenn Sie Ihre Routen-Datei wie folgt aussehen ändern:

resources :drinker_beercase # controller to add what beercase that the drinker added 
    resources :drinker_beercase_pages do #static page controller 
    collection do 
     get :beerlist # show the beerlist 
    end 
    member do 
     get :specificbeer # show the specificbeer 
    end 
    end 
end 

Dann wird die specificbeer_drinker_drinker_beercase_page zu dieser URL führen:

/drinker/:drinker_id/drinker_beercase_pages/:id/specificbeer(.:format) 

Ich bin mir nicht ganz sicher, ob das, was Sie vorhaben, für, aber hoffentlich hilft es dir, in die richtige Richtung zu führen.

+0

hallo danke für die Antwort, die ich mein Problem lösen, indem Sie '

<% = link_to beer.beer .name, specificbeer_drinker_drinker_beercase_pages_path (@ Trinker, Bier)%>

'auf diese '

<% = link_to beer.beer.name, specificbeer_drinker_drinker_beercase_pages_path (@drinker,: beer_id => beer.beer_id)%>

'im nicht sicher, ob Ich habe es richtig gemacht, aber ich gebe mir, was ich wollte, um die Bier-ID zu übergeben, die angeklickt wurde und seine Infomation zeigen, versuchen Sie es auch mit Ihrem Post – Led

Verwandte Themen