Thanks super, Greg, for helping me out. I’m dense, 'cause I couldn’t
figure out the syntax for ‘whatever’. I did get this to work in
the .erb file:
<% if Item.find( item ).orders.size > 0 %>
I’d go with orders.empty?
You will want to do your find in the controller. Set the results to
an instance variable.
@item = Item.find(…)
Then that instance variable is available in your view:
<%= debug @item %>
<%=h "Found #{item.title} in Orders" %>
<% end %>
But I’m just wondering… is that the most efficient way to do it? Is
there a more efficient way?
Depends on your app. You might want that :include => :items or you
might not. It’ll save a bunch of smaller queries later if you leave
it off, but then what if you needed all those items? It’s up to you.
Thanks super, Greg, for helping me out. Â I’m dense, 'cause I couldn’t
figure out the syntax for ‘whatever’. Â I did get this to work in
the .erb file:
<% if Item.find( item ).orders.size > 0 %>
What is item here, is it already an Item object? If so then all you
need is
if item.orders.empty?
No need to find it again.
Arguably better would be to provide a method in Item, possibly
‘orders?’ that indicates whether that item has any orders. Then you
would use
if item.orders?
where method orders? of Item returns self.orders.empty?
This moves logic from the view into the model which is often worthwhile.
Whenever I see a.b.c I consider whether something should be moved into a
model.
But I’m just wondering… is that the most efficient way to do it? Â Is
there a more efficient way?
Depends on your app. Â You might want that :include => :items or you
might not. Â It’ll save a bunch of smaller queries later if you leave
it off, but then what if you needed all those items? Â It’s up to you.
Isn’t that the wrong way round?
Colin
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.