2011-07-20 3 views
1

Im créant une association plusieurs vers plusieurs rails projet, et im obtenir les erreurs suivantes quand je lance new.html.erb:Ruby on Rails erreurs d'association

Table 'purchase_form_rails.account_numbers_pi_names' doesn't exist 

undefined local variable or method `account_numbers' for #<#<Class:0x2a979ef4>:0x2a978770> 

Extracted source (around line #34): 

(Il devrait être à la recherche dans la base de données purchase_form_rails, et la table account_numbers (entre le tableau d'assemblage pi_names et account_numbers est pi_names_account_numbers)

Heres mon new.html.erb:

<div class="field"> 

     <% for account_number in @account_numbers %> 
      <input type="checkbox" 
       id="<%=account_number.id%>" 
       name="account_numbers_ids[]" 
       value="<%=account_number.id %>" 
       <%if @pi_name.account_numbers.include? tag%>checked="checked"<%end%> 
     > <%=account_numbers.account_number%> 
     <% end %> 

    </div> 

Faites-moi savoir si vous n eed plus d'infos!

Répondre

1

Si vous définissez un has_many: complet rails puis attend joindre le nom de la table doit être triée par ordre alphabétique comme account_numbers_pi_names (Cela devrait être la table de jointure nom pas pi_names_account_numbers).

+0

Oh intéressant n'a jamais su cela. Ok, donc ça a marché. Mais maintenant j'ai une nouvelle erreur 'mauvais nombre d'arguments (0 pour 1) Source extraite (autour de la ligne # 33): ' –

+0

Pouvez-vous me dire ce que vous essayez d'atteindre? Avez-vous regardé dans fields_for méthode – naren

+0

Je suis tout nouveau à Rails. Avez-vous de bons guides/tutoriels qui expliquent essentiellement comment obtenir certaines informations de la base de données dans la vue/plusieurs associations? –

1

pour beaucoup de nombreuses associations, rails convention prévoit que la table de jointure/lien pour être en ordre alphabétique, vous avez dit

le entre la table de rejoindre pi_names et account_numbers est pi_names_account_numbers

mais le erreur indique

account_numbers_pi_names' does not exist

changer le nom de la table de « pi_names_account_numbers » à « account_numbers_pi_names » devrait résoudre le problème