I want to convert analytical results (i.e. numbers) into prose (i.e.
English sentences).  In addition to generating the words, I also want to
be able to style bits of the text (presumably by decorating them with
css classes).

For example, assume something contrived like:

def cholesterol_sentence(my_model)
   "Your total cholesterol level is
    #{my_model.total_cholesterol}, which is considered
    #{cholesterol_style(my_model.total_cholesterol)}."
end

def cholesterol_style(total_cholesterol)
  if (total_cholesterol < 200)
    content_tag(:div, "low", :class => 'safe')
  elsif (total_cholesterol < 240)
    content_tag(:div, "average")
  else
    content_tag(:div, "high", :class => 'danger')
  end
end

Note that I need to generate several paragraphs of text, not just a
single sentence.

I don't think the logic belongs in a view -- the logic is rather complex
and it would be unwieldy to write it in erb or the DSL du jour.  It
could go in a helper, but that seems mighty heavy-weight for what's
supposed to be short, simple methods.

The only other option I see is to put the logic in a model, which seems
okay except that models don't have access to ActionView helpers (e.g.
content_tag).

What do the experienced railers suggest?

- ff

-- 
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to