我正在使用acts_as_follower宝石。使用示例代码,它可以在另一个用户对象之后正常工作。但我也想让用户关注文章。acts_as_follower对于多个模型
该代码看起来相当简单,除了FollowsController似乎是专门针对用户对象编码的事实。我应该为每种类型的对象创建单独的操作吗?
控制器/ follows_controller.rb
class FollowsController < ApplicationController
def create
@user = User.find(params[:user_id])
current_user.follow(@user)
end
def destroy
@user = User.find(params[:user_id])
current_user.stop_following(@user)
end
end
模型/ user.rb
...
acts_as_followable
acts_as_follower
...
模型/ article.rb
class Article < ActiveRecord::Base
...
acts_as_followable
...
end
组的意见/如下/ create.js.erb
$('#follow_user').html('<%= escape_javascript(render :partial => "shared/follow_user", :locals => {:user => @user}) %>');
的意见/用户/ show.html.erb
...
<% if user_signed_in? %>
<div id="follow_user">
<%= render :partial => "shared/follow_user", :locals => {:user => @user} %>
</div>
<% end %>
的意见/用品/ index.html.erb
...
<% if current_user.following?(article) %>
<%= button_to("Un-Follow #{article.id}", article_follow_path(article.to_param, current_user.get_follow(article).id), :method => :delete, :remote => true) %>
<% else %>
<%= button_to("Follow #{article.id}", article_follows_path(article.to_param), :remote => true) %>
<% end %>
config/routes.rb
resources :articles do
resources :follows, :only => [:create, :destroy]
end
resources :users do
resources :follows, :only => [:create, :destroy]
end
完美答案。非常感谢。 – ardochhigh