Best I can tell there are two issue. The first is
args_for_lookup(name, prefixes, partial, keys) calls .map on prefixes
and activescaffold is passing a single prefix as a string. Map is not
a documented method for String. It works on String on my 1.8.7
install but not 1.9+. To fix this I changed find_all_templates in
active scaffold to. This sends prefix as an array and gets the string
out from the return. I'm not sure this is the ideal solution, but it
works.
class LookupContext
module ViewPaths
def find_all_templates(name, partial = false, locals = {})
prefixes.collect do |prefix|
view_paths.collect do |resolver|
temp_args = *args_for_lookup(name, [prefix], partial,
locals )
temp_args[1] = temp_args[1][0]
resolver.find_all(*temp_args)
end
end.flatten!
end
end
end
The second issue I've run into is that @_view_stack is nil if I call
render :super in the first view and not the partial. Seems like the
stack only gets added to from render called in the view. Therefor I
get an error when I call render :super in list.html.erb, but not if I
call it in _list.html.erb.
On Sep 22, 7:25 pm, blmundie <[email protected]> wrote:
> This only happens when i use render :super in list.html.erb. Does
> anyone have an idea?
>
> On Sep 21, 6:57 pm, blmundie <[email protected]> wrote:
>
>
>
>
>
>
>
> > If i set the template to render a partial that render :super I get
> > past the above error. It then gives me a new error. I get is
> > ActionView::Template::Error (undefined method `map' for
> > "installations":String):
> > 18: ")%>
> > 19:
> > 20:
> > 21: <%= render :super %>
> > actionpack (3.1.0) lib/action_view/lookup_context.rb:129:in
> > `normalize_name'
> > actionpack (3.1.0) lib/action_view/lookup_context.rb:114:in
> > `args_for_lookup'
> > /home/bryan/.rvm/gems/ruby-head/bundler/gems/
> > active_scaffold-5c4ae3b25238/lib/active_scaffold/extensions/
> > action_view_rendering.rb:7:in `block (2 levels) in find_all_templates'
>
> > installations is the name of my model.
>
> > On Sep 21, 4:15 pm, blmundie <[email protected]> wrote:
>
> > > I'm getting an error when calling render :super in rails 3.1.
>
> > > ActionView::Template::Error (You have a nil object when you didn't
> > > expect it!
> > > You might have expected an instance of Array.
> > > The error occurred while evaluating nil.last):
> > > 19:
> > > 20:
> > > 21:
> > > 22: <%= render :super %>
> > > /home/bryan/.rvm/gems/ruby-head/bundler/gems/
> > > active_scaffold-0ce03559d49f/lib/active_scaffold/extensions/
> > > action_view_rendering.rb:42:in `render_with_active_scaffold'
> > > app/views/installation_alarms/list.html.erb:22:in
> > > `_app_views_installation_alarms_list_html_erb__1059381062_93896420'
>
> > > seems like activescaffold is looking for @_view_stack which is
> > > nil.https://github.com/activescaffold/active_scaffold/blob/master/lib/act...
> > > line 42
--
You received this message because you are subscribed to the Google Groups
"ActiveScaffold : Ruby on Rails plugin" 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/activescaffold?hl=en.