允许用户收藏帖子

时间:2015-06-23 19:52:26

标签: ruby-on-rails

我正致力于让用户收藏帖子。

我创建了一个名为“收藏夹”的模型。

<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

我在这里做错了什么?还有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

如果你只想尝试投票/收藏&#39;系统工作,我建议使用像https://github.com/ryanto/acts_as_votable之类的宝石。