У меня есть has_many через настройку связи между моделью пользователя и моделью библиотеки. Модель пользователя:
class User < ApplicationRecord
has_many :libraries, dependent: :destroy
has_many :articles, through: :libraries
end
Модель статьи:
class Article < ApplicationRecord
geocoded_by :address
after_validation :geocode, if: :will_save_change_to_address?
belongs_to :newspaper
has_many :libraries
has_many :users, through: :libraries
end
Модель библиотеки:
class Library < ApplicationRecord
belongs_to :user, optional: true
belongs_to :article, optional: true
end
Когда я go при обновлении статей, создается новая библиотека, но она не должна:
def update
@myarray = Array.new
@myarray = @article.user_ids
@mylibrary = @library
if @myarray.include?(@user[:id])
@myarray.delete(@user[:id])
else
@myarray << @user[:id]
end
@article.update(user_ids: @myarray)
@article.save!
redirect_to article_path(@article)
Помоги мне Обиван Кеноби, Ты моя единственная надежда