Bontina Chen
2007-Jan-22 09:52 UTC
Syntax in calling function of acts_as_taggable_on_steroids
The function looks like this. I don''t know what how I should fill in the parameters. tl is an array of tags. def find_tagged_with(tags, options = {}) tags = Tag.parse(tags) if tags.is_a?(String) return [] if tags.empty? tags.map!(&:to_s) conditions = sanitize_sql([''tags.name in (?)'', tags]) conditions << "and #{sanitize_sql(options.delete(:conditions))}" if options[:conditions] find(:all, { :select => "DISTINCT #{table_name}.*", :joins => "left outer join taggings on taggings.taggable_id = #{table_name}.#{primary_key} and taggings.taggable_type = ''#{name}'' " + "left outer join tags on tags.id taggings.tag_id", :conditions => conditions }.merge(options)) end # Options: # :start_at - Restrict the tags to those created after a certain time # :end_at - Restrict the tags to those created before a certain time # :conditions - A piece of SQL conditions to add to the query # :limit - The maximum number of tags to return # :order - A piece of SQL to order by. Eg ''tags.count desc'' or ''taggings.created_at desc'' # :at_least - Exclude tags with a frequency less than the given value # :at_most - Exclude tags with a frequency greater then the given value and I tried the following syntax and got...>> find_tagged_with(tl,{:limit =5})SyntaxError: compile error (irb):40: odd number list for Hash find_tagged_with(tl,{:limit =5}) ^ (irb):40: parse error, unexpected ''='', expecting ''}'' find_tagged_with(tl,{:limit =5}) ^ from (irb):40>> find_tagged_with(tl,{:limit 5})SyntaxError: compile error (irb):41: odd number list for Hash find_tagged_with(tl,{:limit 5}) ^ (irb):41: parse error, unexpected tINTEGER, expecting ''}'' find_tagged_with(tl,{:limit 5}) ^ from (irb):41>> find_tagged_with(tl,{:limit})SyntaxError: compile error (irb):42: odd number list for Hash find_tagged_with(tl,{:limit}) ^ from (irb):42>> find_tagged_with(tl,{:limit[5]})SyntaxError: compile error (irb):43: odd number list for Hash find_tagged_with(tl,{:limit[5]}) ^ from (irb):43 Anyone knows what''s the right syntax? Any reference or suggestions are highly appreciated. -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---
I think your first try was the closest. Try find_tagged_with tl, :limit => 5 This is short for find_tagged_with(tl, {:limit => 5}) --Shauna -- 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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---