Forum: Ruby on Rails Filtered display

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Bill M. (Guest)
on 2008-11-26 22:15
Hello all. I've set up an inventory app and I want to be able to have
the index file display ether everything in inventory or only items on
order. So I want to populate @spares with the appropriate content then
pass it to index.html.erb
Is this the right approach? If so how do put logic into the controller
to populate @spares ?
Any help appreciated!
...Bill

------------spares_controller.rb
def index
@spares = Spare.find(:all) <--do this to see total inventory
@spares = Spare.find(:all, :conditions => ["state = ?", "On Order"])
<--do this to see what's on order
...
end

-------------index.html.erb
<% for spare in @spares %>
  <tr>
    <td><%=h spare.name %></td>
    <td><%=h spare.partno %></td>
    <td><%=h spare.state %></td>
...
  </tr>
<% end %>
Jeremy W. (Guest)
on 2008-11-27 04:11
Bill McGuire wrote:
> Hello all. I've set up an inventory app and I want to be able to have
> the index file display ether everything in inventory or only items on
> order. So I want to populate @spares with the appropriate content then
> pass it to index.html.erb
> Is this the right approach? If so how do put logic into the controller
> to populate @spares ?
> Any help appreciated!
> ...Bill
>

It looks like you're generally going in the right direction. However,
you're setting @spares twice, so your view will only see the results of
the second #find. It's not really clear to me what effect you're going
for here.

I also recommend using named_scope for the "on order" items, if you're
using Rails 2.1 or above. They're a bad-ass way to encapsulate common
filters on your objects.

http://ryandaigle.com/articles/2008/3/24/what-s-ne...
Bill M. (Guest)
on 2008-11-27 20:24
Jeremy Weiskotten wrote:
> Bill McGuire wrote:
>> Hello all. I've set up an inventory app and I want to be able to have
>> the index file display ether everything in inventory or only items on
>> order. So I want to populate @spares with the appropriate content then
>> pass it to index.html.erb
>> Is this the right approach? If so how do put logic into the controller
>> to populate @spares ?
>> Any help appreciated!
>> ...Bill
>>
>
> It looks like you're generally going in the right direction. However,
> you're setting @spares twice, so your view will only see the results of
> the second #find. It's not really clear to me what effect you're going
> for here.
>
> I also recommend using named_scope for the "on order" items, if you're
> using Rails 2.1 or above. They're a bad-ass way to encapsulate common
> filters on your objects.
>
> 
http://ryandaigle.com/articles/2008/3/24/what-s-ne...

Thanks for the reply Jeremy. I didn't mean to show that I was populating
@spares twice, I was looking for a way to populate it one of the two
ways depending on what the user wanted to see.
I'll take a look at the link you sent, might be the way to go.
Thanks again.
This topic is locked and can not be replied to.