Frederick Cheung wrote in post #988949: > On Mar 23, 8:52pm, John Merlino <li...@ruby-forum.com> wrote: >> >> params[:controller].singularize.constantize.responds_to(:viewable) > > Presumably this is the line throwing the error. If params[:controller] > is users then you'll be calling > constantize on the string user. Constants have to start with a capital > letter, so constantize throws an error. > As an aside, seing that much markup in a helper is off-putting(in the > same way that too much logic in a template is awkward), if I were you > i'd shift some of that into a partial > > Fred
Hey thanks you were right. Now it looks even more off putting: def table(collection, header_names, fields, class_name) return false unless collection.any? table_str = "" table_str += "<table id=\"" + class_name + "\" class=\"" + class_name + "\">\n" table_str += "\t<thead>\n" table_str += "\t\t<tr>\n" header_names.each do |name| table_str += "\t\t\t<th>" table_str += name table_str += "</th>\n" end if params[:controller].singularize.capitalize.constantize.method_defined? :viewable table_str += "\t\t\t<th>" table_str += "View" table_str += "</th>\n" end table_str += "\t\t</tr>\n" table_str += "\t</thead>\n" table_str += "\t<tbody>\n" collection.each do |col| table_str += "\t\t<tr>\n" fields.each do |name| table_str += "\t\t\t<td>\n" table_str += col[name].to_s table_str += "\t\t\t</td>\n" end if params[:controller].singularize.capitalize.constantize.method_defined? :viewable table_str += "\t\t\t<td>\n" table_str += link_to 'View', :action => 'show', :id => col.id table_str += "\t\t\t</td>\n" end table_str += "\t\t</tr>\n" end table_str += "\t</tbody>\n" table_str += "</table>\n" table_str.html_safe end It works but I dont like that I am checking whether a model has the method "viewable" just to display a link to a detail view in the table. Is there a better way to determine if the current controller's table should contain a view or not? 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@googlegroups.com. To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.