named_scope :has_valid_sysoid, lambda{|sysoid|
  conditions = ["nodesysoid IS NOT NULL AND nodelabel LIKE '%-to-%']
  unless sysoid.nil?
    conditions[0]<< " AND nodesysoid = ?"
    conditions << sysoid
  end
  {:conditions => conditions, :include => [:ipinterface, :alarm]}
}


<zitiere wer="Me">
> Thanks.
>
> Trying to keep the controller simple:
> Takes a value or not.
> One thing I could do was put he include inside the method call but
> where does the param go?
>
> Node.has_valid_sysoid(..)
>
> The scope is working, just trying cut out the duplication.
>
> On Jun 24, 5:57 pm, Philip Hallstrom <phi...@pjkh.com> wrote:
>> On Jun 24, 2010, at 3:34 PM, Me wrote:
>>
>> > Is there a way to DRY this up a bit?
>>
>> > named_scope :has_valid_sysoid, lambda{|sysoid|
>> >    (sysoid.nil?) ? {:conditions => ["nodesysoid IS NOT NULL AND
>> > nodelabel LIKE '%-to-%'"], :include => [:ipinterface, :alarm]} :
>> > {:conditions => ["nodesysoid IS NOT NULL AND nodelabel LIKE '%-to-%'
>> > AND nodesysoid = ? ", sysoid], :include => [:ipinterface, :alarm]}
>> >    }
>>
>> You could move the condition inside the {}'s so it only affects the
>> value of the :conditions key.
>>
>> But... I would be more included to separate the scopes into
>> :has_valid_sysoid and :has_specific_sysoid.  
>>
>> Model.has_valid_sysoid('foo') doesn't really seem to be doing what the
>> scope suggests it's doing...  to me anyway.. I see a difference b/n
>> "valid" and "a specific".
>>
>> I don't know if that makes sense for your application or not...
>>
>> -philip
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to rubyonrails-t...@googlegroups.com.
> To unsubscribe from this group, send email to
> rubyonrails-talk+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>


-- 
Herr Bente Pieck,
Weidenallee 37
20357, Hamburg

Tel.: 0152-22361035

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to rubyonrails-t...@googlegroups.com.
To unsubscribe from this group, send email to 
rubyonrails-talk+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to