Reputation: 1149
I'm trying to use a result from a select in a search param
SELECT distinct policy_business_unit_id as number FROM `policies` WHERE (policy_business_unit_id ='2')
That condition shows
number
2
I'm trying to use "2" in my param condition.
SELECT distinct policy_business_unit_id as number FROM `policies` WHERE (policy_business_unit_id ='2')
SELECT * FROM `cia_ensures` WHERE (id = 2)
But i'm getting this
SELECT * FROM `cia_ensures` WHERE (id = NULL)
My tables:
|cia_ensures|
|id| |name|
1 aaa
2 bbb
3 ccc
...
|policy_business_units|
|id| |name|
1 abc
2 def
3 ghi
...
|policies|
|id| |number| |policy_business_unit_id|
1 1234 2
2 5678 1
3 9123 2
4 4567 1
...
Here is the controller:
def ajax
@business = PolicyBusinessUnit.find(:all)
@select = Policy.find(:all,:select=>['distinct policy_business_unit_id as number'],:conditions=>['policy_business_unit_id = ?',params[:business] ])
@list_cias = CiaEnsure.find(:all,:conditions=>['id = ?',@select])
end
Here is the model:
class Policy < ActiveRecord::Base
belongs_to :cia_ensure
end
class CiaEnsure < ActiveRecord::Base
has_many :policies
end
Here is the view:
Business:
<%= select_tag "business",options_for_select(@list_cias.collect {|t| [t.name.to_s ,t.id]}, params[:business].to_i ) %>
Cias:
<%= select_tag "cias",options_for_select(@business.collect {|t| [t.name.to_s ,t.id]}, params[:cias].to_i ) %>
What I'm trying to do is:
@business = PolicyBusinessUnit.find(:all)
@select = Policy.find(:all,:select=>['distinct policy_business_unit_id as number'],:conditions=>['policy_business_unit_id = ?',params[:business] ])
@list_cias = CiaEnsure.find(:all,:conditions=>['id = ?',@select[0].try(:number) ])
Here is my logs:
##### HERE I SHOULD HAVE THE NUMBER 2
SELECT distinct policy_business_unit_id FROM `policies` WHERE (policy_business_unit_id ='2')
##### I WANT TO USE NUMBER 2
SELECT * FROM `cia_ensures` WHERE (id = NULL)
Please somebody can help me?
Upvotes: 0
Views: 49
Reputation: 8295
when you give
@list_cias = CiaEnsure.find(:all,:conditions=>['id = ?',@select[0].try(:number) ])
are you sure that @select[0]
contains an object that responds to :number
?
can you provide us the @select
variable?
PS: If you are using anything newer than rails 2.3
please restyle you AR queries
Upvotes: 1