Paginate in another controller

When I'm in a controller and view A, and there bring up a layer with an
id to list items from another controller B using AJAX (link_to_remote),
how do I deal with that? I get an error with pure javascript on the page
when clicking on the next button in the paginate nav bar. When hover
over the next-link looking at the url it points at the controller B,
obviously. But how do I stay in the current controller/view? I hope you
understand my problem.

Sorry, I don't understand your problem.
You have a link to some ajax action. You click it and
get the ajax response. What would you mean with
"stay in the current controller"? After all html is a state less
protocol and you're never "in" a specific controller. Though
the navbar may tell you where the actual page came from, but
an ajax call doesn't change that.
And what exactly should "I get an error with pure javascript on the
page
when clicking on the next button...". So this error is your problem?
Then it would help tremendously if you would post that error.

Thorsten Mueller wrote:

Sorry, I don't understand your problem.
You have a link to some ajax action. You click it and
get the ajax response. What would you mean with
"stay in the current controller"? After all html is a state less
protocol and you're never "in" a specific controller. Though
the navbar may tell you where the actual page came from, but
an ajax call doesn't change that.
And what exactly should "I get an error with pure javascript on the
page
when clicking on the next button...". So this error is your problem?
Then it would help tremendously if you would post that error.

I'm in a controller/view 'intranet'. There I have a <%= link_to_remote
"List Comments", :url => {:controller => 'messages', :action =>
'comments', :id => message }, :html => { :style => ''} , :loading =>
"Element.show('timeloop')", :complete => "Element.hide('timeloop')" %>

This opens a div in 'intranet'

  <div id="commentlist">

  <%= render :partial => 'messages/commentlist' %>

  </div>

with this in messages_controller

def comments
    @comments = Comment.paginate :per_page => session[:comments_listnr],
:page => params[:comments], :conditions => ["message_id = ?",
params[:id]]
    session[:message_id] = params[:id]
    render :update do |page|
     page.show 'editarearight'
     page.replace_html 'editarearight', :partial => 'messages/comments'
    end
end

The list comes up and the navigation from paginations comes up fine. But
when clicking the navigation I get an page with just text, javascript
code.

This is my navigation/pagination

<%= will_paginate @comments, :param_name => 'comments', :remote => {
:with => 'value', :update => "commentlist"}, :prev_label => '<',
:next_label => '>' %>

<div id="commentlist">

<%= render :partial => 'messages/commentlist' %>

</div>

with this in messages_controller

def comments
@comments = Comment.paginate :per_page => session[:comments_listnr],
:page => params[:comments], :conditions => ["message_id = ?",
params[:id]]
session[:message_id] = params[:id]
render :update do |page|
page.show 'editarearight'
page.replace_html 'editarearight', :partial => 'messages/comments'
end
end

The list comes up and the navigation from paginations comes up fine. But
when clicking the navigation I get an page with just text, javascript
code.

This is my navigation/pagination

<%= will_paginate @comments, :param_name => 'comments', :remote => {
:with => 'value', :update => "commentlist"}, :prev_label => '<',
:next_label => '>' %>

ok, that's an easy one.

you can use link_to_remote (and all related ajax link generating
helpers)
in two ways:
with the :update option or without.

if you use it, as you do with :update => "commentlist", then
it expects pure html as response and will try to update the named
element, "commentlist" in that case.
So it interprets your response as HTML.
remove the :update thing, you tell it with
page.replace_html "editarearight"
that you want to replace another element anyway.

Thorsten Mueller wrote:
t's an easy one.

you can use link_to_remote (and all related ajax link generating
helpers)
in two ways:
with the :update option or without.

if you use it, as you do with :update => "commentlist", then
it expects pure html as response and will try to update the named
element, "commentlist" in that case.
So it interprets your response as HTML.
remove the :update thing, you tell it with
page.replace_html "editarearight"
that you want to replace another element anyway.

Thanks :slight_smile: