Вы должны передать переменную экземпляра @row
в партиал, когда вы визуализируете ее, используя следующий синтаксис:
render :partial => "shared/browse_row", :locals => { :row => @row }
Затем она будет доступна в файле партиции browse_row
как переменная с именем * 1006.*
Итак, вы просто измените это на следующее:
.row{'data-row'=> "#{row}"}
В будущем вы можете захотеть сделать что-то еще подобное ...
В ссылке для загрузки других проектов:
<a href="path_to/more_projects" class="get-new-projects" data-remote="true" data-method="GET">Load more projects</a>
В вашем файле контроллера:
def show
row = params[:row]
@projects = Project.where('id > ?', row)
render :json => { :projects => render_to_string( :partial => 'shared/browse_row.html',
:locals => { :row => row }) },
:status => :ok
end
Затем в вашем успешном обратном вызове ajax:
$('.get-new-projects').live('ajax:success', function(data, json, response) {
// insert the rendered HTML that we passed in as a JSON string
$('.row').after(json.projects);
});
ThisКстати, вы держите все красиво и организованно.Ваш бэкэнд рендерит код, ваш интерфейс помещает рендеринг кода туда, где он должен быть на странице ... все довольны.