Hey all,
I''m building a html helper.
My view looks like this:
= item_view "title", @post.title, :class =>
''stuff''
My helper looks like this:
def format_item_data(data)
case data
when Class then ''''
when School then school(data)
else data.to_s
end.to_s.html_safe
end
def item_view(label, *args)
data = args.first
formatter = args.second
options = args.extract_options!
options[:class] = "pi #{options[:class]}".strip
text = formatter ? send(formatter,data) : format_item_data(data)
content_tag :div, options do
content_tag(:div, label, :class => "label") +
content_tag(:div, text, :class => "data")
end
end
I get the following error:
{:class=>"pi stuff"} is not a symbol
I''m not sure why its throwing this exception. I followed this tutorial
that says I can pass a hash as part of the argument list:
http://www.simonecarletti.com/blog/2009/09/inside-ruby-on-rails-extract_options-from-arrays/
Thanks for response
--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en.
On 1 April 2011 23:22, John Merlino <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> = item_view "title", @post.title, :class => ''stuff''Have you got a field in your model called "class"? If so, I''d change that, as it''s a reserved word, and will cause all sorts of confusion to Ruby. -- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org 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.
On 1 Apr 2011, at 23:22, John Merlino <lists-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Hey all, > > I''m building a html helper. > > My view looks like this: > > = item_view "title", @post.title, :class => ''stuff'' >This means that args.second is your hash of options> > def item_view(label, *args) > data = args.first > formatter = args.secondSo here you set formatter to that hash> options = args.extract_options! > options[:class] = "pi #{options[:class]}".strip > > text = formatter ? send(formatter,data) : format_item_data(data)And here you''re therefore using that hash as the first argument to send, which makes no sense. Did you mean to call extract_options earlier on? Fred> > content_tag :div, options do > content_tag(:div, label, :class => "label") + > content_tag(:div, text, :class => "data") > end > end > > I get the following error: > > {:class=>"pi stuff"} is not a symbol > > I''m not sure why its throwing this exception. I followed this tutorial > that says I can pass a hash as part of the argument list: > > http://www.simonecarletti.com/blog/2009/09/inside-ruby-on-rails-extract_options-from-arrays/ > > > Thanks for response > > -- > 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. >-- 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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.