find :all -- IN condition



我的rails应用程序中有两个模型: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

你试过了吗?:

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

编辑@saved_book。是一个数组吗?看起来不像。如果@saved_book应该是@saved_books,那么代码将更改为:

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

我想…

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

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

最新更新