Michael P. wrote in post #989454:
On 26 March 2011 23:10, Leobardo C. [email protected] wrote:
def self.parents
@organizations = Organization.where(“is_company = ?”,true)
I guess it keeps asking itself about the companies which are companies
within the same table… What do you think?
I assume that the “parents” method returns all the Organizations which
have child organisations?
If so, you’re using this method instead of a scope?
Can’t you do something along the lines of the pseudo-SQL below:
SELECT * FROM organisations WHERE organisations.id IN (SELECT
parent_id FROM organisations GROUP BY parent_id)
If you can get it working in SQL, you can turn it into a scope.
Find the solution dude. It was an scope as you did… Here is my answer
for anyone there facing the same problem.
======================================================================
I’ve found the solution to this issue…
I’m using Rails 3 and my class looks like this (and the problematic
methods was this too)
class Organization < ActiveRecord::Base
.
.
.
.
def self.parents
@organizations = self.find :all, :conditions => ['is_company = ?
',true]
select_choice = I18n.t(“select”) + " "+
I18n.t(“segments.description”)
@organization_parents = [select_choice]
for organization in @organizations
@organization_parents << [organization.name, organization.id]
end
return @organization_parents
end
I did have to hack a lot in the code to find out something was wrong
with the named_scope on the line
@organizations = self.find :all, :conditions => ['is_company = ? ',true]
So I had to change it to something like this
@organizations = Organization.where(“is_company = ?”,true)
But it was wrong too… So I decided to add an scope for this below the
class name so the final code looks like this:
class Organization < ActiveRecord::Base
.
.
.
scope :company, where(“is_company = ?”,true)
def self.parents
@organizations = self.company
select_choice = I18n.t(“select”) + " "+
I18n.t(“segments.description”)
@organization_parents = [select_choice]
for organization in @organizations
@organization_parents << [organization.name, organization.id]
end
return @organization_parents
end
So using this line with the scope
@organizations = self.company
it worked flawlessly in every part of the code.
I was wondering if the named_scope is deprecated when using class
methods or they are not supported from now and throws an error and not a
warning before
Thanks for your help
Leo