[英]Join query in Ruby on Rails
我必須在Rails中的ruby的2個表上進行聯接查詢。 它工作正常,但對象不包含我已加入的2個表中的列。
在控制器中
@posts = Posts.select("*").joins(:users).joins(:categories).all
視野中
<% @posts.each do |p| %>
<%= p.inspect %>
<% end %>
結果顯示
表用戶等中沒有列用戶名...
使用聯接查詢后出現的對象實際上包含兩個表的數據,但是在進行放置或檢查時對接不會顯示它。
我們可以直接通過@posts對象調用users表的屬性,例如,
<%= @ posts.first.user_name%>或任何其他字段。
請試試 :
@posts = Posts.select("users.username, users.column2, users.column-n, categories.name, categories.column2, categories.column-n*").joins(:users, :categories).all
實際上它應該工作。
盡管檢查僅顯示了Post屬性,但執行此操作后:
@posts = Post.select("*").joins(:users).joins(:categories).all
嘗試獲取用戶的特定屬性
<% @posts.each do |p| %>
<%= p.first_name %> # or any other user attribute
<% end %>
並應向您顯示用戶的名字。
如果無法正常工作,您可以執行以下操作:
@posts = Post.select("posts.*, users.*, categories.*").joins(:users).joins(:categories).all
select(...HERE...)
中的表名采用復數形式,因為它是數據庫本身中表的名稱。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.