путаница с использованием RJS для link_to_remote - PullRequest
0 голосов
/ 01 января 2011

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

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 ]

0 голосов
/ 02 марта 2012

Попробуйте:

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 полезен.

0 голосов
/ 01 января 2011

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

...