加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何设置acts_as_follower

发布时间:2020-12-16 22:44:44 所属栏目:百科 来源:网络整理
导读:我在rails应用程序中使用gem acts_as_follower.我设置它并且它工作(在控制台中),但是我对如何在视图中设置它一无所知. 我想创建一个对应于user.follow和user.stop_following方法的按钮. github没有解释这一点.请帮忙. 解决方法 您可以创建链接到的控制器操作
我在rails应用程序中使用gem acts_as_follower.我设置它并且它工作(在控制台中),但是我对如何在视图中设置它一无所知.
我想创建一个对应于user.follow和user.stop_following方法的按钮.

github没有解释这一点.请帮忙.

解决方法

您可以创建链接到的控制器操作.例如,在应用程序中,我将以下两个操作添加到用户控制器.一旦路由也被设置,我使用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) %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读