本質的に、私は好き/嫌いのバイナリ投票システムを持っています。あなたのクラスは呼び出さLike
れます。
class Like < ActiveRecord::Base
belongs_to :likeable, polymorphic: true
end
また、コメントComment
可能へのポリモーフィックな関連付けがあり、好きになることができるクラスがあります
class Comment < ActiveRecord::Base
belongs_to :commentable, polymorphic: true
has_many :likes, :as :likeable
end
私たちはクラスを持っていますSection
。これは好きでコメントすることもできます
class Section < ActiveRecord::Base
has_many :likes, as: :likeable
has_many :comments, as: commentable
end
ただし、ページsection#show
には、セクション情報、セクションのいいね、そしてコメント (comments/comments
パーシャルから) が表示されます。Section#show
ビューは次のとおりです。
<h1><%= exercise.name %></h1>
<p><%= exercise.description %></p>
<%= render 'likes/like_button' %>
<%= render 'comments/comments' %>
<%= render 'comments/comment_form' %>
ただし、各コメントに投票する機能が必要です。
次のコードは からのものです - 現在機能しないのは、手元のコメントに適用されないため_comments.html.erb
、 のレンダリングです。_like_button.html.erb
<% @comments.each do |comment| %>
<%= comment.content %>
<%= render 'likes/like_button' %>
<hr />
<% end %>
そして、ここに_like_button.html.erb
部分的なものがあります
<% if @like.nil? %>
<%# No record of Like in table %>
<%= form_for [@likeable, Like.new] do |f| %>
<%= f.submit "Like" %>
<%= f.submit "Dislike" %>
<% end %>
<% else %>
<%# Marks current chosen option, if the opposite option is chosen, the record is updated to reflect the descion by the user %>
<%= form_for [@likeable, @like] do |f| %>
<% if @like.is_liked %>
Currently Liked!
<%= f.submit "Dislike" %>
<% else %>
<%= f.submit "Like" %>
Currently Disliked!
<% end %>
<% end %>
<% end %>
最終的には、ビュー内からコメントに投票できるようにする方法を知りたいだけですSection#show
ありがとう!