我有以下创建并执行 SQL 查询的方法:
def edition_authors(edition, authors)
query_string = "contributor_type = ? AND author = ?"
for i in 1..authors.length - 1
query_string += " OR author = ?"
end
return edition.contributors.where(query_string, 'Author', authors)
end
最后一行是我遇到的麻烦。我希望“作者”数组以某种方式变成一组字符串。例如,如果 authors 数组包含 ['James Joyce', 'Cory Doctorow', 'Cormac McCarthy'],我希望最后一行读起来像:
return edition.contributors.where(query_string, 'Author', 'James Joyce', 'Cory Doctorow', 'Cormac McCarthy')
我怎样才能做到这一点?
最佳答案
取决于您使用的是哪种 rails 和哪种 ruby,
ActiveRecord 在 Rails 3 中已经有了这个功能:
Model.where(:my_field => ['Author', 'James Joyce', 'Cory Doctorow', 'Cormac McCarthy'])
arr.map{|v| v.to_s.inspect
会给你一个逗号分隔的列表arr.join(',')
会给你一个逗号分隔的列表,没有引号。
然后你可以随意使用这个字符串。
关于mysql - 导轨 : Querying with an Array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390216/