我的服务应该与当前用户匹配。我有一个方法在我的服务中应该找到这个对手,但它没有保存在我的控制器中。我意识到这是一个非常基本的问题,但我对rails很新,谢谢!
这是我的服务:
class MatchUser
attr_accessor :user_params
def initialize(user_params)
@user_params = user_params
end
def match(opponent)
return false if user_params[:matched] == true
@unmatched_users = User.where(matched: false)
@unique_unmatched_users = @unmatched_users.where.not(id: user_params[:id])
@same_league_unmatched_users = @unique_unmatched_users.where(league_id:
user_params[:league_id])
return false if @same_league_unmatched_users.empty?
opponent = @same_league_unmatched_users.sample
opponent.faceoff_date = Time.now
user_params[:faceoff_date] = Time.now
opponent.save!
end
end
当我尝试分配@matched_user_team时,我的控制器中出现错误,因为@matched_user是nil
@user = current_user
@matching = MatchUser.new(@user)
if @matching.match(@matched_user)
@matched_user_team = @matched_user.teams.last.chars
end