In a Rails 3.2 app I have a model Project, which has many Tasks. Each Task has a :status field, which is an integer as follows
1=Normal
2=Urgent
In the Project show view, I want to display a text alert if any of the associated tasks are flagged as urgent.
If the status field was within the Project model, I would do something like this:
<% if Project.status == 2 %>
<div class="alert">URGENT TASKS!</div>
<% end %>
How can I set up a similar if statement, that will cycle through all associated Tasks, and return true if at least one task is marked as urgent?
I’m not sure what terms I should be searching on for this sort of functionality. Or maybe I’m not looking at the problem the right way. I’d be grateful for any pointers in the right direction.
Thanks
This method in Project will do it:
Then you can do, if you have
@projectset to the project you’re looking at:This next bit was added in answer to your comment. This method in Project will return the highest priority set (lowest number in your example) for any task in a particular project:
You can then switch between them in your view: