Well, I don't know if a Project makes itself featured, but that's your
dilemma.
In any case, it would be something that a controller action calls on
either a Project instance (@project.feature_me) or the FeaturedProduct
model (FeaturedProject.is_now(@project)).
Where you might have:
class FeaturedProject
def self.is_now(a_project)
fp = find(:first) || new
fp.project = a_project
fp.save
end
end
-Rob
On Feb 18, 2009, at 4:16 PM, yaphi wrote:
>
> Interesting...So I'd have a method in my Project model that sets the
> FeaturedProject.
>
> I'll play with this and see how it goes. Thanks!
>
> On Feb 18, 2:08 pm, Rob Biedenharn <[email protected]>
> wrote:
>> Why not have a:
>>
>> class FeaturedProject < ActiveRecord::Base
>> belongs_to :project
>>
>> before_create :only_have_one
>> validates_associated :project
>>
>> def only_have_one
>> self.class.count < 1
>> end
>> end
>>
>> Then you can FeaturedProduct.find(:first) and be sure that there is
>> only one. No need to mess with the projects when the featured one
>> changes. However, you might want to do:
>>
>> class Project
>> after_destroy :clean_up_if_featured
>>
>> def clean_up_if_featured
>> fp = FeaturedProject.find(:first)
>> if fp && fp.project_id == self.id
>> fp.destroy
>> else
>> true
>> end
>> end
>> end
>>
>> Although that might be equivalent to:
>>
>> class Project
>> has_one :featured_project, :dependent => :destroy
>> end
>>
>> -Rob
>>
>> On Feb 18, 2009, at 12:43 PM, yaphi wrote:
>>
>>
>>
>>> Hey Maurício,
>>
>>> I have a project model. What I'd like to do is set a project to
>>> "featured" so I can display that on the homepage. By marking a
>>> project
>>> as featured, I'd want all the other projects to automatically have
>>> their "featured" column set to false.
>>
>>> On Feb 17, 8:55 pm, Maurício Linhares <[email protected]>
>>> wrote:
>>>> No, there isn't. Maybe you're approaching the problem from the
>>>> wrong
>>>> point of view.
>>
>>>> Try to explain what is your problem that someone else might give
>>>> you a
>>>> better idea.
>>
>>>> -
>>>> Maurício Linhareshttp://alinhavado.wordpress.com/(pt-br)
>>>> |http://blog.codevader.com/(en)
>>
>>>> On Tue, Feb 17, 2009 at 10:13 PM, yaphi <[email protected]>
>>>> wrote:
>>
>>>>> I'm not sure if there is a term for this (which is why I can't
>>>>> find
>>>>> anything on google) but I want to be able to set one of my models
>>>>> active, where the rest will be set to inactive.
>>
>>>>> I would guess to write a method that sets all the records to
>>>>> inactive,
>>>>> then set the selected object to active. That seems like it's
>>>>> pretty
>>>>> messy though. Is there some sort of built-in functionality with
>>>>> rails
>>>>> that will only allow one column to be true at a time?
>>
>> Rob Biedenharn http://agileconsultingllc.com
>> [email protected]
> >
Rob Biedenharn http://agileconsultingllc.com
[email protected]
--~--~---------~--~----~------------~-------~--~----~
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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---