Как создать частичное представление для этого уведомления - PullRequest
0 голосов
/ 28 марта 2019

Я уже настроил уведомление о том, что всякий раз, когда пользователь публикует рецензию на книгу, book.user получает уведомления в этой части: views / notifications / _book.html.erb.В то же время я пытаюсь создать уведомление для подписчиков пользователя, когда пользователь подписывает новую книгу.IMO, предполагается создать частичный фрагмент книги для отображения представления уведомлений, но у меня уже есть копия частичного фрагмента книги для отображения уведомлений рецензий.Теперь я не знаю, смогу ли я все-таки внести изменения в тот же файл или создать что-то еще.Я использую 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

review.rb

belongs_to :book
belongs_to :user

after_commit :create_notifications, on: :create

private

def create_notifications
    Notification.create do |notification|
       notification.notify_type = 'book'
       notification.actor = self.user
       notification.user = self.book.user
       notification.target = self
       notification.second_target = self.book
    end
end

просмотров / уведомлений / _book.html.erb

<div class=''>
  <%= link_to notification.actor.username, main_app.profile_path(notification.actor.username) %> reviewed
  <%= link_to notification.second_target.title, main_app.book_path(notification.second_target) %>
</div>

<div class=''>
  <% unless notification.target.blank? %>
    <div class="review-rating" data-score="<%= notification.target.rating %>"></div>
    <%= notification.target.comment %>
  <% end %>
</div>

book.рб

belongs_to :user
has_many :chapters, dependent: :destroy

after_commit :create_notifications, on: :create

    def create_notifications
        self.user.followers.each do |follower|
          Notification.create(notify_type: 'book', 
                              actor: self.user,
                              user: follower, 
                              target: self, 
                              second_target: self.book)

        end
    end

Итак, если я должен сделать в том же частичном, как я должен?или, может быть, я должен сделать это по-другому?

1 Ответ

0 голосов
/ 30 марта 2019

После долгих занятий я узнал, что должен быть создан частичный элемент notify_type, который также должен соответствовать notify_type книги.

Т.е. я создал

notify_type: "new_book"

Имя частичного = '_new_book.html.erb'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...