我有以下(Vote
作为多态关联Post
):
votes_controller.rb:
if already_voted?
@vote = @votable.votes.find_by_user_id(current_user.id)
@vote.destroy
end
帖子/_vote_form.html.erb:
<div class="vote-form">
<% if @post.votes.exists?(:user_id => current_user.id) %>
<% if @post.votes.find_by_user_id(current_user.id).polarity == 1 %>
<%= form_for ([@post, @post.votes.find_by_user_id(current_user.id)]),
method: :delete,
remote: true do |f| %>
(etc).
我想votes.find_by_user_id(current_user.id)
在帖子视图和投票控制器中都用这样的东西替换:
def vote_by_current_user
self.votes.find_by_user_id(current_user.id)
end
所以它们变得像这样更具可读性:
@vote = @votable.vote_by_current_user
或者<% if @post.vote_by_current_user.polarity == 1 %>
我不确定如何在他们俩上都使用该方法。
有什么建议么?