我已经设置了一个通知,用于当用户在书上发表评论时,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
views / notifications / _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.rb
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
因此,如果必须渲染相同的局部图像,应该怎么办?还是我必须另辟way径?
答案 0 :(得分:0)
经过大量研究,我知道必须创建一个notify_type部分,该部分还必须与本书的notify_type相对应。
即我创建了
notify_type: "new_book"
partial ='_new_book.html.erb'的名称