find:all - IN条件

时间:2011-12-16 14:14:16

标签: ruby-on-rails

我的rails应用程序中有2个模型:Book和Editions。一本书可以有很多版本。

我需要获得特定作者撰写的“书籍”的所有“版本”。

查找特定作者的所有书籍

 @saved_books = Book.find :all, :conditions => ["aut_fk = ?",@aut.id ] 

@saved_books包含由特定作者撰写的一系列书籍。

我的问题是如何获得特定作者撰写的书籍版本。

@editions =  Edition.find(:all, :conditions => [ "book_fk IN (?)", @saved_book.id]) //this code is not correct

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:1)

你试过吗?:

@edition =  Edition.where(:book_fk => @saved_book.id])

修改 @ saved_book.id是一个数组吗?看起来不像。 如果@saved_book应为@saved_books,则代码将更改为:

@edition =  Edition.where(:book_fk => @saved_books.map {|b| b.id}])

我想......

答案 1 :(得分:0)

我正在使用下面的代码,它似乎正在完成这项工作。希望它对其他人有帮助

@edition =  Edition.find(:all, :conditions => ["book_fk IN (?)", @saved_books.map{|b| b.id}])