我正在使用rails 3.2.3並對查詢有疑問。Ruby on Rails - 如何查詢控制器上的型號/條件?
我讀過使用arel代替命名作用域是有利的。
基本上在我的應用程序中,當用戶登錄時,我希望他看到他創建的產品。 因此而不必在我控制器指數:
products=Product.find(:all)
我一直在尋找類似
products=Product.find(:all, :conditions....)
的事情是,我的用戶和產品型號都具有HABTM關係(它真的有be),我不知道如何加入這些表格,以便只顯示由current_user
插入的產品(插入工作正常)
是否必須添加搜索方法在我的產品模型中? 或者這可以通過在索引控制器中傳遞:conditions
來完成?
基本上邏輯是:
- >獲取的所有產品
- >內與products_users HABTM表連接,並得到所有的產品,其中products_users.user_id = current_user.id。返回結果。
我不知道我是否缺少這裏的東西......有關如何編碼的任何提示?我有點困惑。
在此先感謝
問候
它最好不使用'。所有'在你的控制器中。你可以返回關係:'Product.scoped'。這裏的原因是爲未來做好準備,您可以使用分段緩存 - 儘管您從緩存中獲取頁面內容,但您不會很高興知道昂貴的DB查詢仍然會被觸發。 – jdoe
大聲笑,ofc它只是他的代碼的談話......至少他需要範圍或分頁結果(無論如何,我投票贊成你的好評) –