Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:使用GetStream的通知,充当跟踪者gem_Ruby On Rails_Getstream Io - Fatal编程技术网

Ruby on rails Rails:使用GetStream的通知,充当跟踪者gem

Ruby on rails Rails:使用GetStream的通知,充当跟踪者gem,ruby-on-rails,getstream-io,Ruby On Rails,Getstream Io,我正在使用和为我的项目构建通知和新闻提要。当跟踪某个用户时,该用户应收到此类跟踪的通知。我可以跟踪和取消跟踪用户,但getstream会出现以下错误: Something went wrong creating an activity: undefined local variable or method `user' for #<Follow:0x007ffaa70c9398> Completed 500 Internal Server Error in 37ms NameErr

我正在使用和为我的项目构建通知和新闻提要。当跟踪某个用户时,该用户应收到此类跟踪的通知。我可以跟踪和取消跟踪用户,但getstream会出现以下错误:

Something went wrong creating an activity: undefined local variable or method `user' for #<Follow:0x007ffaa70c9398>
Completed 500 Internal Server Error in 37ms

NameError (undefined local variable or method `user' for #<Follow:0x007ffaa70c9398>):
app/controllers/users_controller.rb:160:in `follow_user'


Rendered /usr/local/lib/ruby/gems/2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_source.erb (3.1ms)
Rendered /usr/local/lib/ruby/gems/2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.text.erb (0.8ms)
Rendered /usr/local/lib/ruby/gems/2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.text.erb (0.9ms)
Rendered /usr/local/lib/ruby/gems/2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.text.erb (108.1ms)
user.rb
中,我有:

acts_as_followable
acts_as_follower
除此之外,没有其他引用
遵循
模型的内容。知道我做错了什么吗

编辑:

这是我在users控制器中的follow和unfollow代码。如果@follower.follow(@follower)
,则第160行为
,同样,对于unfollower:

def follow_user
  @follower = User.find_by_username(params[:username])
  @following = User.where(id: params[:following_id]).first
  @user = @following

  if @follower == @following
    respond_to do |format|
      flash.now[:warning] = "Cannot follow yourself."
      format.js {  render file: "/app/views/layouts/notice.js.erb" }
    end
  end

  if @follower.follow(@following)
    StreamRails.feed_manager.follow_user(@follower.id, @following.id)
    respond_to do |format|
      format.js { render file: "/app/views/users/follow.js.erb" }
    end
  else
    respond_to do |format|
      flash.now[:info] = "Error."
      format.js {  render file: "/app/views/layouts/notice.js.erb" }
    end
  end
end

def unfollow_user
  @follower = User.find_by_username(params[:username])
  @following = User.find(params[:following_id])
  @user = @following

  if @follower.stop_following(@following)  
    StreamRails.feed_manager.unfollow_user(@follower.id, @following.id)
    respond_to do |format|
      format.js { render file: "/app/views/users/follow.js.erb" }
    end
  else
    respond_to do |format|
      flash.now[:info] = "Error."
      format.js { render file: "/app/views/users/add_flag.js.erb" }
    end
  end
end
gem假设您的模型具有
user
属性来查找活动的参与者。您可以通过在
Follow
模型中实现
activity\u actor
方法来更改此行为

例如:

class Follow < ActiveRecord::Base

    def activity_actor
        self.follower
    end

end
class Follow
这将在创建跟随模型时创建活动,例如“x跟随y”(以及您已经实现的在提要之间创建实际跟随连接的逻辑)。

gem假设您的模型具有一个
user
属性来查找活动的参与者。您可以通过在
Follow
模型中实现
activity\u actor
方法来更改此行为

例如:

class Follow < ActiveRecord::Base

    def activity_actor
        self.follower
    end

end
class Follow

这将在创建跟踪模型时创建诸如“x跟踪y”之类的活动(以及您已经实现的在源之间创建实际跟踪连接的逻辑)。

Hi,我可以看看您的用户吗?@pyfl88添加了跟踪和取消跟踪的代码,我可以看一下你的用户吗?@pyfl88添加了follow和unfollow的代码