Ruby on rails Rails帮助查找器方法
我正在尝试创建一个find方法。这应该可以找到所有tid为“1分钟”或“2分钟”且形式为“Nyhedsbrev”的Konkurrener 我试过这样的方法:Ruby on rails Rails帮助查找器方法,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,我正在尝试创建一个find方法。这应该可以找到所有tid为“1分钟”或“2分钟”且形式为“Nyhedsbrev”的Konkurrener 我试过这样的方法: Konkurrancer.where("tid = ? or ? and form = ?", "2 min", "1 min", "Nyhedsbrev") 它不起作用。它只会在表格为Nyhedsbrev的所有konkurrencer中找到。也许这是预期的效果 Konkurrancer.where("tid IN (?) AND for
Konkurrancer.where("tid = ? or ? and form = ?", "2 min", "1 min", "Nyhedsbrev")
它不起作用。它只会在表格为Nyhedsbrev的所有konkurrencer中找到。也许这是预期的效果
Konkurrancer.where("tid IN (?) AND form = ?", ['2 min', '1 min'], 'Nyhedsbrev')
除此之外,您尝试使用的“OR”syntac在SQL中是这样编写的:
SELECT * FROM foo WHERE column1 = 'foo' OR column1 = 'BAR'
请注意,对于“或”条件,您仍然需要再次列出列名。也许这是预期的效果
Konkurrancer.where("tid IN (?) AND form = ?", ['2 min', '1 min'], 'Nyhedsbrev')
除此之外,您尝试使用的“OR”syntac在SQL中是这样编写的:
SELECT * FROM foo WHERE column1 = 'foo' OR column1 = 'BAR'
请注意,对于“或”条件,您仍然需要再次列出列名。请尝试以下操作:
Konkurrancer.where("tid = ? or tid = ?", "2 min", "1 min").where(:form => "Nyhedsbrev")
您还可以使用:
Konkurrancer.where("form = ? and (tid = ? or tid = ?)", "Nyhedsbrev", "2 min", "1 min")
试试这个:
Konkurrancer.where("tid = ? or tid = ?", "2 min", "1 min").where(:form => "Nyhedsbrev")
您还可以使用:
Konkurrancer.where("form = ? and (tid = ? or tid = ?)", "Nyhedsbrev", "2 min", "1 min")
您的SQL有点错误,我想您需要这样:
Konkurrancer.where(
"(tid = ? or tid = ?) and form = ?",
"2 min",
"1 min",
"Nyhedsbrev"
)
注意第二次提到的
tid
列名和括号。您的SQL有点错误,我想您需要这样:
Konkurrancer.where(
"(tid = ? or tid = ?) and form = ?",
"2 min",
"1 min",
"Nyhedsbrev"
)
注意第二次提到的
tid
列名和括号。我会批准你的回答。你知道我在哪里可以读到rails SQL finder方法吗。我现在不知道man可以在(?)中使用,您可以在这里阅读有关ActiveRecord查询接口的内容:通常,您可以在SQL中执行所有操作,也可以在ActiveRecord中执行。我将批准您的答案。你知道我在哪里可以读到rails SQL finder方法吗。我现在不知道人类可以在(?)中使用,您可以在这里阅读有关ActiveRecord查询接口的内容:通常,您可以在SQL中执行所有操作,也可以在ActiveRecord中执行所有操作。这是有效的SQL,但它不能按预期工作。谢谢。当然,它也起作用了,但没有必要的效果。多亏了你的评论,我修正了我的答案。这是有效的SQL,但它没有按预期工作。谢谢。当然,它也起作用了,但没有必要的效果。由于你的评论,我修正了我的答案。