我在rails应用程序中使用gem acts_as_follower。我设置它并且它工作(在控制台中),但是我对如何在视图中设置它一无所知。 我想创建一个对应user.follow和user.stop_following方法的按钮。
github没有解释这一点。请帮助。
答案 0 :(得分:11)
您可以创建链接到的控制器操作。例如,在应用程序中,我将以下两个操作添加到用户控制器。一旦路由也被设置,我使用url帮助器链接到我的视图中的操作,并最终通过javascript回调显示flash消息。
UsersController:
def follow
@user = User.find(params[:id])
if current_user
if current_user == @user
flash[:error] = "You cannot follow yourself."
else
current_user.follow(@user)
RecommenderMailer.new_follower(@user).deliver if @user.notify_new_follower
flash[:notice] = "You are now following #{@user.monniker}."
end
else
flash[:error] = "You must <a href='/users/sign_in'>login</a> to follow #{@user.monniker}.".html_safe
end
end
def unfollow
@user = User.find(params[:id])
if current_user
current_user.stop_following(@user)
flash[:notice] = "You are no longer following #{@user.monniker}."
else
flash[:error] = "You must <a href='/users/sign_in'>login</a> to unfollow #{@user.monniker}.".html_safe
end
end
配置/ route.rb:
resources :users do
member do
get :follow
get :unfollow
end
end
然后在您的视图中,您可以使用url helper链接到控制器操作:
<%= link_to "Unfollow", unfollow_user_path(@user) %>