Hi all -
Ruby 1.8.7 / Rails 2.3.5
Schedule model: course_id, starts_at, ends_at, capacity
has_many :requests
Request model: user_id, schedule_id, state_id
belongs_to :schedule
request.state_id indicates whether the request has been approved.
(state_id = 2 = pending my approval, state_id = 3 = approved)
I want to list all requests pending my approval, along with the
remaining seats available.
def listPendingRequest
@allRequests = Request.find(:all, :conditions => ["state_id = ?",
2]).each{
|request|
@schedule = Schedule.find(:first, :conditions => ["id =
?",request.schedule_id])
@num = Request.find(:all, :conditions => ["state_id = ? AND schedule_id
= ?", '3', @schedule.id]).nitems
@remaining = @schedule.capacity - @num
}
@request = Array.new
@allRequests.each do |r|
if (r.state_id == 2 and r.approver_id == current_user.id)
@request << r
end
end
if @request.empty?
flash.now[:alert] = "You have no pending requests to approve."
end
end
I currently have this method in my request controller, but I think it
belongs in a model. I don't know which model, though.
Also, this method shows the remaining seats for the first schedule on
all of the requests, regardless of which schedule is being requested.
When I do a @schedule = Schedule.find(:all...), I get an error:
"undefined method 'capacity' for Array".
What am I doing wrong? And where should I put the method?
Thanks in advance for your help!!
--
Posted via http://www.ruby-forum.com/.
--
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