0
我想在表policy_logs中搜索,如果它有pdf。如何在另一個表值中使用一個ID表?
這裏我表:
|policies|
|id| |name|
1 abc
2 def
3 ghi
|policy_logs|
|id| |name| |policy_id|
1 ab.pdf 1
2 cd.pdf 1
3 ef.pdf 3
4 ij.pdf 3
我試圖使用所有列policy_id從像 「身份證」 policy_logs在政策表
這裏我的控制器:
@pdf = PolicyLog.find(:all,:select=>['policy_id as pdf'],:group=>['policy_id'])
@policy = Policy.find(:all,:conditions=>['id IN (?)',@pdf ])
這裏我的型號:
class Policy < ActiveRecord::Base
has_many :policy_logs
end
class PolicyLog < ActiveRecord::Base
belongs_to :policy
end
這裏我的觀點:
<% @policy.each do |p| %>
<%= p.id %>
<%= p.name %>
<% end %>
這是要我要像結果
|id| |policy_id|
1 1
3 3
我試過,但越來越NULL值:
@pdf = PolicyLog.find(:all,:select=>['policy_id as pdf'],:group=>['policy_id'])
@policy = Policy.find(:all,:conditions=>['id IN (?)',@pdf ])
這裏是日誌:
SELECT policy_id as pdf FROM `policy_logs` GROUP BY policy_id
SELECT * FROM `policies` WHERE (id IN (NULL),(NULL),(NULL),(NULL))
使用數組0也試過:
@pdf = PolicyLog.find(:all,:select=>['policy_id as pdf'],:group=>['policy_id'])
@policy = Policy.find(:all,:conditions=>['id IN (?)',@pdf[0].pdf ])
但我只有一個結果,這裏是日誌:
SELECT policy_id as pdf FROM `policy_logs` GROUP BY policy_id
SELECT * FROM `policies` WHERE (id IN (1))
使用陣列1也試過:
@pdf = PolicyLog.find(:all,:select=>['policy_id as pdf'],:group=>['policy_id'])
@policy = Policy.find(:all,:conditions=>['id IN (?)',@pdf[1].pdf ])
但我只得到了一個結果,這裏是日誌:
SELECT policy_id as pdf FROM `policy_logs` GROUP BY policy_id
SELECT * FROM `policies` WHERE (id IN (3))
最後我試圖
@pdf= PolicyLog.find(:all,:select=>['policy_id as pdf'],:group=>['policy_id'])
@search= Policy.find(:all,:conditions=>['id IN (?)',@pdf.each do |a| { a.pdf} ])
,但我得到
odd number list for Hash.
unexpected ']', expecting kEND
也許還有其他的方法來搜索。
請有人可以幫助我嗎?
感謝您的幫助 –