I want to clean my code by moving the duplicated lines :
partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
to the pagination_partials function.
=================================================
WORKING CODE:
=================================================
def render_format_search_partial(file, options={})
# TODO remove this line to use the one in the
pagination_partials function
partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
respond_to do |format|
format.json { render :json => pagination_partials(file,
partial, options), :status => 200 }
format.html
end
end
def render_json_search_partial(file, options={})
# TODO remove this line to use the one in the
pagination_partials function
partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
render :json => pagination_partials(file, partial,
options), :status => 200
end
def pagination_partials(file, partial, options={})
# TODO use this line instead of the duplicated lines above
#partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
pagination = render_to_string( :partial => 'shared/list/
will_paginate', :formats => [:html] )
hash = {:response => partial, :pagination => pagination}
options.each { |o, v| hash.merge(o => v) unless options.blank? }
hash
end
=====================================================
WORKING CODE:
=====================================================
def render_format_search_partial(file, options={})
partial = pagination_partials(file, options)
respond_to do |format|
format.json { render :json => partial, :status => 200 }
format.html
end
end
def render_json_search_partial(file, options={})
partial = pagination_partials(file, options)
render :json => partial, :status => 200
end
def pagination_partials(file, options={})
partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
pagination = render_to_string( :partial => 'shared/list/
will_paginate', :formats => [:html] )
hash = {:response => partial, :pagination => pagination}
options.each { |o, v| hash.merge(o => v) unless options.blank? }
hash
end
===============================================
EXPECTED WORKING CODE....but it doesnt work
===============================================
def render_format_search_partial(file, options={})
respond_to do |format|
format.json { render :json => pagination_partials(file,
options), :status => 200 }
format.html
end
end
def render_json_search_partial(file, options={})
render :json => pagination_partials(file, options), :status =>
200
end
def pagination_partials(file, options={})
partial = render_to_string( :partial => "#{file}", :formats =>
[:html] )
pagination = render_to_string( :partial => 'shared/list/
will_paginate', :formats => [:html] )
hash = {:response => partial, :pagination => pagination}
options.each { |o, v| hash.merge(o => v) unless options.blank? }
hash
end
============================================================
WILL_PAGINATE PARTIAL:
============================================================
<div class="pagination_wrapper">
<%= will_paginate @search_result, :page_links => false,
:previous_label => "#{image_tag
'icons/control-180.png', :class => "prev-button link-button link-
button-small"}",
:next_label => "#{image_tag 'icons/
control.png', :class => "next-button link-button link-button-small"}"
%>
</div>
============================================================
THE EVIL PARTIAL (users/user_list):
============================================================
<div class="list-table" data-source="<%=
search_enterprise_users_path(@enterprise, :format => :html) %>">
<%= render( :partial => 'user',
:collection => @search_results,
:spacer_template => 'shared/list/separator') ||
t('user.empty_result') %>
</div>
============================================================
THE ERROR:
============================================================
ActionView::MissingTemplate (Missing partial users/user_list with
{:locale=>[:en], :formats=>[:json], :handlers=>[:erb, :builder, :coffee,
:haml]}.
Searched in:...
============================================================
I think something's wrong when I try to render a partial inside
another, I tried to remove the spacer_template in the render user
partial and i also try to add the formats => [:html] inside the render
block but without success....It will render properly only if I remove:
<%= render( :partial => 'user',
:collection => @search_results,
:spacer_template => 'shared/list/separator') ||
t('user.empty_result') %>
I don't know if some one can reproduce this issue but I'm interesting
to get some clue about this bug
Thx
--
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" 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-core?hl=en.