Ruby on rails 用户助手方法-抓取ID不为';与当前用户ID不匹配
试图用3个基本条件编写一个助手方法。添加第三个,试图从结果中删除当前用户,将导致错误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
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