2010-10-18 2 views
1

J'ai un contrôleur qui a une valeur que je veux passer au rhtml. J'ai déjà réussi à obtenir la valeur correctement, et sur cette base, je dois faire une action dans le fichier rhtml. Pour des extraits de code,find (params): ActionView :: TemplateError (méthode non définie 'each' pour #haus)

def getsubtable  
    @subtables = Haus.find(params[:bewohner_id]) 

de la méthode ci-dessus, quand je débogués, je peux obtenir la valeur correcte de « bewohner_id ». (exemple: bewohner_id = "2"). Maintenant, j'ai besoin de montrer une liste de valeur qui correspond à bewohner_id = "2" dans un autre formulaire (getsubtable.rhtml). Donc, si je reçois un "2", je vais montrer "a, b, c" dans une nouvelle forme

<% for subtable in @subtables %> 
    <option value="<%= subtable.bewohner_id %>"><%= subtable.bewohner_id %></option> 
<% end %> 

mais je suis une erreur de

ActionView::TemplateError (undefined method 'each' for #haus) 

S'il vous plaît me guider gentiment, comment puis-je utiliser la valeur de « 2 » de bewohner_id et l'utiliser dans <option value> ci-dessus

Merci

Répondre

1
Haus.find(params[:bewohner_id]) 

retourne un re cordon, pas une collection. Si vous voulez une collection, vous devez utiliser

Haus.find_all_by_bewohner_id(params[:bewohner_id]) 

De plus, utilisez @subtables.each plutôt que for subtable in @subtables.

Questions connexes