On 29 June 2010 03:19, RailsFan Radha <lists@ruby-forum.com> wrote:
> RailsFan Radha wrote:
>>
>> I have a table called category and i want to show only the records where
>> "status = A" in my list.erb
>>
>> currently, my list.erb shows all records from category table.
>> but, i would like to show only the records where status = 'A'
>>
>> for example:
>> select * frm category where status = 'A'
>>
>> the idea behind this is, i have this status column to show only the
>> active records.
>> This status flag accepts,
>> "A" for active,
>> "I" for inative and
>> "R" for "Requested newly, but not yet processed".
>> .. and may be others as per the futurre needs.
>>
>> so how can i apply this filter of where status = 'A' in my controller.
>>
>> def list
>> @categories=Category.find_all_categories
>> end
>>
>>
>>
>> - thanks,
>> radha
>
>
> Added another method to the model,
>
> def self.find_active_categories
> find_by_sql("SELECT * from category
> where status = 'A')
> order by category_id ")
> end
Don't use find_by_sql unless absolutely necessary. The above can be
done by using the :conditions and :order options in find. Also as I
suggested previously, I would use a named scope (with default_scope
for the order if you will always sort by the same thing).
>
> And changed the controller, list action to call this new method.
>
> def list
> @categories=Category.find_active_categories
> end
>
> And this seems to be working.
> Let me know if i have missed any or please add any additional info which
> this implies too.
Do you always want to just show active categories on the index? If so
then that concept is ok (subject to comments above).
Colin
--
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-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
No comments:
Post a Comment