Were to put a method

i have this in my view, Parked at Loopia
but it doesnt seem to work.

im not sure what im doing wrong… it think i have the wrong syntax. i
“no block given” error on line 5

And what would be the better way to do this? i tried making a method
“find_by(field, item)” but it didnt work out…

View this message in context:
Sent from the RubyOnRails Users mailing list archive at Nabble.com.

Try this: (Assuming you have a Model defined as: Prop
and that model has an attribute called “category”:

<% Prop.find_all_by_category(“car”).each do |prop| %>

  •  <%=h prop.title %>
  • <% end %>


    Well i tried what you said, and it worked.
    one thing though. I have multiple items in my category column in the
    db, seperated by spaces… and this is what i tried, with no luck if
    there are more than one item.

    def find_all_by_category(item)
    self.find(:all, :params => {:category => /#{item}/})

    Just incase anyone was wondering, this is what i came up with after
    more reading of the api and spending some time on freenode, hope it
    helps you.
    def self.find_all_by_category(item)
    self.find( :all, :conditions => [“category like ?”, “%#{item}%”] )


    That looks good! Glad you got it working. Basically, it’s a way to do
    matches on substrings of category. I.e. if I have a category of “Car”
    I could do: Prop.find_all_by_category(“ar”) and it would match “Car”
    and anything else like that.

    The one thing I’d caution you on: this may end up being confusing in
    the future. “find_all_by_X” (where X is some attribute on that model)
    is already part of AR associations. So you are redefining an existing
    method to work differently, which may confuse you or mess you up
    later. My recommendation is to call it something differently, maybe
    like: find_by_category_substring(item).

    Just a suggestion though. :slight_smile: