Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 用户助手方法-抓取ID不为';与当前用户ID不匹配_Ruby On Rails_Ruby_Helpermethods - Fatal编程技术网

Ruby on rails 用户助手方法-抓取ID不为';与当前用户ID不匹配

Ruby on rails 用户助手方法-抓取ID不为';与当前用户ID不匹配,ruby-on-rails,ruby,helpermethods,Ruby On Rails,Ruby,Helpermethods,试图用3个基本条件编写一个助手方法。添加第三个,试图从结果中删除当前用户,将导致错误 def male_soccer_players return User.where(:gender => "male", :soccer => true, :id != current_user.id) end 错误是 app/controllers/application_controller.rb:12: syntax error, unexpected ')', expect

试图用3个基本条件编写一个助手方法。添加第三个,试图从结果中删除当前用户,将导致错误

  def male_soccer_players
    return User.where(:gender => "male", :soccer => true, :id != current_user.id)
  end
错误是

app/controllers/application_controller.rb:12: syntax error, unexpected ')', expecting => 

:id!=当前用户id
Rails
。其中
只传递散列 试一试

试试这个:

 def male_soccer_players
        return User.where(:gender => "male", :soccer => true).where("id not != ", current_user.id)
    end

为什么不创建一个范围呢

scope :except, ->(user) { where.not(id: user) }
就你而言:

def male_soccer_players
  User.except(current_user).where(:gender => "male", :soccer => true)
end
或者,如果您愿意,您可以更进一步,如果您感兴趣的是可重用性,则可以创建其他作用域:

scope :male, -> { where(gender: "male") }
scope :soccer_player, -> { where(soccer: true) }

def male_soccer_players
  User.male.soccer_player.except(current_user)
end
{where.not(id:user)}
clean))
def male_soccer_players
  User.except(current_user).where(:gender => "male", :soccer => true)
end
scope :male, -> { where(gender: "male") }
scope :soccer_player, -> { where(soccer: true) }

def male_soccer_players
  User.male.soccer_player.except(current_user)
end