请求作业未定义的方法 'current_user'
Resque job undefined method 'current_user'
这是我第一次尝试 Resque 和做后台工作,我有点卡住了。
我手头有两个问题。
它给我错误
undefined local variable or method `current_user'
- 我不确定我向工人推送的是否确实是最正确的。
这是我的代码:
schedules_controller.rb
def trial
@schedule = current_user.schedules.new
if @schedule.save
user = User.find(params[:id])
@client = Buffer::Client.new(user.token)
Resque.enqueue(ScheduleTweets, @client)
@schedule.update_attribute(:trial, true)
flash[:notice] = "success"
redirect_to :back
else
flash[:alert] = "Try again."
redirect_to :back
end
结束
和工人:
apps/workers/schedule_tweets.rb
class ScheduleTweets
@queue = :schedules_queue
def self.perform(client)
user = User.find(params[:id])
client = Buffer::Client.new(user.token)
@list = List.first(6)
@profiles = client.profiles
@profile_ids = profiles.map(&:id)
@list.each do |list|
client.create_update(body: {text: "#{list.text}", profile_ids: @profile_ids })
end
end
end
end
我的思路是,客户是整个流程的核心,应该是核心。但是 @profile_ids 也包含 1-5 个值。
当我运行任务时,我得到了未定义的局部变量或方法 'current_user'。我该如何解决这个问题,我选择 @client 作为要添加的东西是否正确?
试试这个
schedules_controller.rb
def trial
@schedule = current_user.schedules.new
if @schedule.save
user = User.find(params[:id])
@client = Buffer::Client.new(user.token)
Resque.enqueue(ScheduleTweets, user.id)
@schedule.update_attribute(:trial, true)
flash[:notice] = "success"
redirect_to :back
else
flash[:alert] = "Try again."
redirect_to :back
end
end
和工人:
apps/workers/schedule_tweets.rb
class ScheduleTweets
@queue = :schedules_queue
def self.perform(user_id)
user = User.find(user_id)
client = Buffer::Client.new(user.token)
@list = List.first(6)
@profiles = client.profiles
@profile_ids = @profiles.map(&:id)
@list.each do |list|
client.create_update(body: {text: "#{list.text}", profile_ids: @profile_ids })
end
end
end
这是我第一次尝试 Resque 和做后台工作,我有点卡住了。
我手头有两个问题。
它给我错误
undefined local variable or method `current_user'
- 我不确定我向工人推送的是否确实是最正确的。
这是我的代码:
schedules_controller.rb
def trial
@schedule = current_user.schedules.new
if @schedule.save
user = User.find(params[:id])
@client = Buffer::Client.new(user.token)
Resque.enqueue(ScheduleTweets, @client)
@schedule.update_attribute(:trial, true)
flash[:notice] = "success"
redirect_to :back
else
flash[:alert] = "Try again."
redirect_to :back
end
结束
和工人:
apps/workers/schedule_tweets.rb
class ScheduleTweets
@queue = :schedules_queue
def self.perform(client)
user = User.find(params[:id])
client = Buffer::Client.new(user.token)
@list = List.first(6)
@profiles = client.profiles
@profile_ids = profiles.map(&:id)
@list.each do |list|
client.create_update(body: {text: "#{list.text}", profile_ids: @profile_ids })
end
end
end
end
我的思路是,客户是整个流程的核心,应该是核心。但是 @profile_ids 也包含 1-5 个值。
当我运行任务时,我得到了未定义的局部变量或方法 'current_user'。我该如何解决这个问题,我选择 @client 作为要添加的东西是否正确?
试试这个 schedules_controller.rb
def trial
@schedule = current_user.schedules.new
if @schedule.save
user = User.find(params[:id])
@client = Buffer::Client.new(user.token)
Resque.enqueue(ScheduleTweets, user.id)
@schedule.update_attribute(:trial, true)
flash[:notice] = "success"
redirect_to :back
else
flash[:alert] = "Try again."
redirect_to :back
end
end
和工人:
apps/workers/schedule_tweets.rb
class ScheduleTweets
@queue = :schedules_queue
def self.perform(user_id)
user = User.find(user_id)
client = Buffer::Client.new(user.token)
@list = List.first(6)
@profiles = client.profiles
@profile_ids = @profiles.map(&:id)
@list.each do |list|
client.create_update(body: {text: "#{list.text}", profile_ids: @profile_ids })
end
end
end