У меня есть маршрут
match 'time_loggers/render_menu', to: 'time_loggers#render_menu', via: %i[get post]
и функция для этого маршрута
def render_menu
@project = Project.find_by_id(params[:project_id])
@issue = Issue.find_by_id(params[:issue_id])
render partial: 'time_loggers/embed_menu'
end
И есть мой AJAX запрос на этот маршрут
<%= javascript_tag do %>
function updateTimeLoggerMenu() {
$.ajax({
url:"<%=url_for :controller => '/time_loggers',:action => 'render_menu' %>",
data:({<%= (@project.nil? ? nil : "project_id:#{@project.id}") %><%= ((@issue.nil? or @issue.id.nil?) ? nil : ", issue_id:#{@issue.id}") %>}),
cache:false,
success: function(data){
console.log(data);
$('#time-logger-menu').html(data);
},
});
}
<% end %>
Так что это нормально работает. Но на одной странице вместо рендеринга только части из _embed_menu.html.erb
I (только <div>Test content</div>
внутри нее)
console.log(data);
с других страниц возвращает правильное частичное. <div>Test content</div>
конкретная c страница возвращает полную страницу рендеринга.
Итак, по результату у меня есть следующие просмотры: