Путаница с использованием RJS для link_to_remote

Макет моего приложения содержит навигационный блок и контентный блок, созданный как частичный элемент. Я хочу использовать ajax, чтобы каждый раз, когда человек нажимал на ссылку в навигационном элементе, содержимое этой страницы отображалось в элементе содержимого без обновления. Я запутался в том, как правильно сделать это... любая помощь для рельса нуб??? заранее спасибо ~

application.html.erb

<body>
  <div id="container">
    <%= render 'layouts/header' %>
    <%= render 'layouts/content'%>
    <%= render 'layouts/footer' %>
  </div>
</body>

_header.html.erb

<%= link_to_remote "Home", :url => { :controller => "pages", :action => "home" } %>

_content.html.erb

<div id="content">
  <%= yield %>
</div>

pages_controller.rb

def home
  @title = "Home"
  respond_to do |format|
    format.js
  end
end

home.rjs

page.replace_html :container, :partial => 'layouts/content'

2 ответа

Попробуйте переименовать "home.rjs" в "home.js.rjs". Все остальное выглядит правильно. Какую ошибку вы получаете?

Пытаться:

pages_controller.rb

def home
  @title = "Home"
  respond_to do |format|
    format.js {
      render(:update) do |page|
        page.replace 'content', :partial => 'layouts/content'      
      end
    }
  end
end 

Вам не нужен дополнительный файл RJS. Также, к вашему сведению, если вы сохраняете @title в БД, то вам нужно сделать @title.reload перед response_to, чтобы получить последние данные. Комментарий выше о firebug полезен.

Другие вопросы по тегам