Overloaded view / model code

This is getting perhaps a little too complex for my mind to handle.

What I’m trying to accomplish is to generate a list of of hosts which
are clickable links from my related Person model.

Person # return an array with links
def hostlist_linked
if self.host == nil then
results = []
else
results = self.host.sort {|a,b| a <=> b }.collect { |host|
"link_to " + Setting[:base_url] + “/hosts/” + host + ", " + host +

” }

end
return results

end

and my view code has this…
<%= (@person.hostlist_linked.each do |host| host; end).to_s.html_safe %>

but that doesn’t actually give me links and just outputs the URL as text
and the link_to doesn’t actually function.

Is this possible?


Craig W. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[email protected]
1.800.869.6908 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Need help communicating between generations at work to achieve your
desired success? Let us help!

On 6 December 2011 19:32, Craig W. [email protected] wrote:

end
return results
end

and my view code has this…
<%= (@person.hostlist_linked.each do |host| host; end).to_s.html_safe %>

but that doesn’t actually give me links and just outputs the URL as text and the
link_to doesn’t actually function.

The link_to must be executed as ruby, which your code makes no attempt
to do. Much easier just to put the urls in the collection then do the
link_to in the loop, something like
<% @person.hostlist_linked.each do |host| %>
<%= link_to host %>
<% end %>

Colin

On Dec 6, 2011, at 1:39 PM, Colin L. wrote:

 results = self.host.sort {|a,b| a <=> b }.collect { |host| "link_to " + 

Setting[:base_url] + “/hosts/” + host + ", " + host + “
” }

The link_to must be executed as ruby, which your code makes no attempt
to do. Much easier just to put the urls in the collection then do the
link_to in the loop, something like
<% @person.hostlist_linked.each do |host| %>
<%= link_to host %>
<% end %>


which is what I ended up doing. I thought I posted a follow up but
sometimes this stupid Apple Mail sends it to myself instead (when I
reply to the list).

Craig