Je veux créer une application Rails qui permette aux utilisateurs de suivre d'autres utilisateurs. Je suis semi-nouveau à des relations plus complexes et je tente de mettre en place has_many à travers pour la première fois. Je veux que mes amis puissent suivre d'autres utilisateurs.has_many à travers la même table Rails
Voici ma table de jointure:
class Following < ApplicationRecord
belongs_to :user
belongs_to :follower, class_name: "User"
end
Voici ma table d'utilisateurs:
class User < ApplicationRecord
has_many :followings
has_many :followers, through: :followings
end
Voici mon schéma:
create_table "followings", force: :cascade do |t|
t.integer "user_id"
t.integer "follower_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "users", force: :cascade do |t|
t.string "name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
Je ne sais pas comment définir un formulaire pour créer réellement la relation. Dans une vue des utilisateurs, j'ai ceci, mais cela ne fonctionne pas.
<%= form_for @following do |f| %>
<%= f.hidden_field :follower_id, :value => @user %>
<%= f.select :user_id, @users.collect { |u| [u.name, u.id] } %>
<%= f.submit %>
<% end %>
Comme je l'ai dit, je suis très nouveau dans ce type de relation. J'ai besoin d'aide. Je ne sais pas comment lier les enregistrements à travers un formulaire.
Je suivais ce tutoriel: https://teamtreehouse.com/library/what-is-a-hasmany-through-association-in-ruby-on-rails