Redmine - частичная отрисовка всей страницы вместо части - PullRequest
0 голосов
/ 10 февраля 2020

У меня есть маршрут

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 страница возвращает полную страницу рендеринга.

Итак, по результату у меня есть следующие просмотры:

enter image description here

1 Ответ

0 голосов
/ 10 февраля 2020

Итак, before_action :require_login перенаправил все мои AJAX запросы обратно на страницу «Изменить пароль». Исправлено добавлением условия, которое проверяет текущий контроллер и действие перед AJAX part.

...