2010-11-16 85 views
1

視圖紅寶石查詢我有此在控制器如何在軌道上

@ads = Ad.all(:加入=> 'LEFT JOIN states ON ads.state_id = states.id')

但我有問題來查詢狀態表的字段。 有什麼想法?

<% @ads.each do |ad| %> 
    <tr> 
    <td><%= ad.title %></td> <- title is ad field.no problem 
    <td><%= ad.name %></td> <- name is states field.problem at here 
    </tr> 
<% end %> 
+0

什麼錯誤,你與ad.name得到些什麼? – johnmcaliley 2010-11-16 03:56:26

回答

0

我認爲你需要把這個:ads.state_id = states.id這樣的:#{ads.state_id = states.id}

#{ }將內部評估Ruby代碼。否則,你所擁有的僅僅是字符串中的文本。

雖然我不太清楚你的問題是什麼,所以我不完全確定它會解決它。

+0

連接應該包含文本在這個特定的查詢 – johnmcaliley 2010-11-16 04:19:41

2

我不認爲這將工作,除非你有協會成立。除非性能是一個問題,你可能只是想利用協會沒有加入

ad.rb

class Ad < ActiveRecord::Base 
    belongs_to :state 
end 

state.rb

class State < ActiveRecord::Base 
    has_many :ads 
end 

控制器

@ads = Ad.all 

視圖

<% @ads.each do |ad| %> 
     <tr> 
     <td><%= ad.title %></td> 
     <td> 
      <%= ad.state.name %> 
     </td> 
     </tr> 
    <% end %> 
+0

你也可以看看包括如果性能是一個問題..可能適合你的需要比連接更好 – johnmcaliley 2010-11-16 04:16:26