J'ai deux éléments, les utilisateurs et les messages, et une table de jointure les reliant entre eux. Les deux éléments ont une relation has_many entre eux (: via la table de jointure). J'ai créé la table de jointure après avoir créé les deux bases de données. Le problème que j'ai est que je reçois des erreurs chaque fois que j'essaie de faire quelque chose avec @ user.posts ou @ post.users. C'est presque comme s'ils n'étaient pas configurés correctement. Quelque part je lisais que si vous créez une association après avoir créé le modèle, vous devez utiliser la méthode add_column. Est-ce mon problème? Je n'étais pas sûr de la façon de mettre en œuvre cette méthode ou quoi que ce soit. C'est l'erreur que je reçois:joindre table et has_many relations ne fonctionne pas
SQLite3 :: SQLException: aucune colonne de ce type: users.post_id: SELECT "users". * FROM "utilisateurs" WHERE "users". "Post_id" = 60 AND "users". " id "=? LIMIT 1
On dirait de l'erreur que j'ai besoin d'ajouter une colonne, mais je ne suis pas sûr de la façon de le faire.
ici est mon dernier schema.db:
ActiveRecord::Schema.define(:version => 20110930155455) do
create_table "posts", :force => true do |t|
t.text "content"
t.integer "vote_count"
t.text "author"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
create_table "users", :force => true do |t|
t.string "user_name"
t.string "password"
t.date "time"
t.integer "posts_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "post_id"
end
create_table "votes", :force => true do |t|
t.integer "post_id"
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
end
end
Pourriez-vous publier les parties du schéma actuel qui ont à voir avec les tables utilisateurs, messages et la table de jointure? Vous le trouverez dans votre application sous 'db/schema.rb'. Et aussi la définition des classes 'User',' Post' et la classe de modèle de jointure (au cas où vous auriez une classe concrète pour cela). J'ai ensuite utilisé les associations "has_many: through" ... – mliebelt
+1 pour l'envoi de code de modèle et d'informations sur la table de jointure. Votre table d'utilisateurs ne devrait pas avoir de champ post_id et de même, la table posts ne devrait pas avoir de champ user_id. Ces champs doivent être dans la table de jointure. –