我正致力于让用户收藏帖子。
我创建了一个名为“收藏夹”的模型。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<body id="body">
<div class="nav-container">
<a href="#" id="close-btn"> X </a>
<nav class="display">
<ul>
<li><a href="#"> One </a></li>
<li><a href="#"> Two </a></li>
<li><a href="#"> Three </a></li>
</ul>
</nav>
</div>
<br />
<div>click here </div>
</body>
它存储了user_id和post_id。
我还创建了一个FavoritesController
belongs_to :user
belongs_to :post
我的帖子#index上的表格是:
class FavoritesController < ApplicationController
def create
@post = Post.find(params[:post_id])
current_user.favorite(@post)
end
def destroy
@post = Post.find(params[:id])
current_user.unfavorite(@post)
end
end
我的用户模型如下所示:
<%= form_for current_user.favorites.build do |favorite| %>
<%= hidden_field_tag :post_id, f.id %>
<%= favorite.button do %>
<i class="fa fa-star-o"></i>
<% end %>
<% end %>
当我尝试点击我最喜欢的时候:
# Favorites a post.
def favorite(post)
favorite.create(post_id: post)
end
# Unfavorites a post.
def unfavorite(post)
favorite.find_by(post_id: post).destroy
end
我在这里做错了什么?还有更好的方法吗?