Я пытаюсь настроить уведомления для подписчиков определенного пользователя, чтобы каждый раз, когда пользователь следит за публикацией главы, все подписчики пользователя получали уведомление.Я использую https://github.com/rails-engine/notifications.
Я реализовал следующие отношения, которые хорошо работают в моем приложении из этого урока https://www.devwalks.com/lets-build-instagram-with-ruby-on-rails-part-6-follow-all-the-people/
Это то, что я до сих пор делал с кодами
user.rb
has_many :books, dependent: :destroy
has_many :chapters, dependent: :destroy
has_many :reviews, dependent: :destroy
has_many :genres
has_many :ratings
chapter.rb
belongs_to :book
belongs_to :user
after_commit :create_notifications, on: :create
private
def create_notifications
Notification.create do |notification|
notification.notify_type = 'chapter'
notification.actor = self.book.user
notification.user = self.user.followers
notification.target = self
notification.second_target = self.book
end
end
просмотров / уведомлений / _chapter.html.erb
<div class=''>
<%= link_to notification.actor.username, main_app.profile_path(notification.actor.username) %> published a new chapter to
<%= link_to notification.second_target.title, main_app.book_path(notification.second_target) %>
</div>
<div class=''>
<% unless notification.target.blank? %>
<%= link_to notification.target.title, main_app.book_chapter_path(notification.second_target, notification.target.id) %>
<% end %>
</div>
книга.rb
belongs_to :user
has_many :chapters, dependent: :destroy
Когда я нацелил уведомления на себя, я был уведомлен правильно, но когда я сделал те, что выше, я получил ошибку:
User(#58266780) expected, got #<ActiveRecord::Associations::CollectionProxy [#<User id: 3, name: "Otunba Olusaga of Saganation", username: "saga", email: "officialklashe@gmail.com", created_at: "2019-03-26 11:59:16", updated_at: "2019-03-27 09:13:58", admin: false, bio: "">]> which is an instance of User::ActiveRecord_Associations_CollectionProxy(#58325780)
Дополнительные исследования показывают, что я должен "сопоставьте подписчиков (или используйте инструмент пакетной вставки) для вставки нескольких уведомлений ", что я не знаю, как сделать.
Пояснение с примерами кодов, связанных с этим, будет очень полезно, спасибо!