2011-03-04 3 views
2

J'ai effectué une recherche sur Google et personne n'a encore rencontré ce problème. J'écris un sql personnalisé has_and_belongs_to_many, et il ne me laissera pas spécifier :delete_sql. Voici mon code à ce jour:Rails ArgumentError: Clé (s) inconnue (s): delete_sql

class Foo 
    has_many :students, 
      :class_name => 'User', 
      :finder_sql => 'SELECT users.* FROM users, groups, students_groups WHERE users.id = students_groups.student_id AND students_groups.group_id = groups.id AND groups.course_period_id = #{id}', 
      :delete_sql => 'DELETE FROM students_groups WHERE students_groups.student_id = #{record.id} AND students_groups.group_id IN (SELECT groups.id FROM groups WHERE groups.course_period_id = #{id})' 
end 

J'ai trouvé the documentation on delete_sql for has_and_belongs_to_many ... Je crois que je les suivre exactement, mais j'obtiens l'erreur suivante lorsque je tente d'utiliser cette classe:

Foo.new 

mais il est élever l'erreur suivante:

ArgumentError: Unknown key(s): delete_sql 

Je ne pense pas que cela fait une différence, mais je suis en utilisant Rails v3.0.5

Devrais-je remplir un rapport de bogue ou est-ce que je rate l'évidence?

+0

La page la liste des listes seulement ': delete_sql' sous la rubrique HABTM, aucun des autres associations mentionnent il. Je n'ai trouvé aucune référence dans le fichier 'associations.rb' pour dire pourquoi il n'était pas supporté par les autres types d'association, mais cela me semble être une fonctionnalité manquante. – sarnold

+0

@seth ... Dans l'API, ': delete_sql' est fourni en option pour' _and_belongs_to_many' et n'est pas fourni en option pour 'has_many'. – rubyprince

Répondre

0

Alors, il se trouve que je me trouve juste rails et lui dire que son association has_and_belongs_to_many ...

+0

Comment mentez-vous? – lulalala

Questions connexes