У меня есть выпадающий список, который отображает несколько «принципалов», когда пользователь выбирает принципала и нажимает кнопку «Отправить», передает параметру основного идентификатора действие контроллера.
Проблема в том, что мне нужно это значение параметра в нескольких контроллерах.
мой взгляд
<div class="row">
<div class="col-sm-12 button-wrapper">
<%= form_tag(principal_analytics_path, method: 'get', class: 'form-inline justify-content-center') do %>
<%= select_tag 'prid', options_from_collection_for_select(Principal.all, :id, :name), :prompt => "Select Principal", class: "form-control wrapper-space" %>
<%= submit_tag "Search", class: 'btn btn-primary wrapper-space', :name => nil %>
<% end %>
<%= link_to "Clear", principal_analytics_path, class: "text-danger" %>
</div>
</div>
действие контроллера
как только я получаю выбранные "книги" принципалов, мне нужен способ передачи переменной @pri_books от одного контроллера к другому,Или способ просто передать params [: prid] `нескольким действиям контроллера.Я не уверен, как это сделать.Может быть, функция, которая передает переменную от одного контроллера к другому?
# displays graphs about principals.
def principal_analytics
@months_back = 12
if params[:prid].present?
# takes a principals id as a parameter.
# @months_back will determine how many months are shown in the chart.
@pri_books = Book.principal_books(params[:prid], @months_back)
end
respond_to do |format|
format.html
format.js {}
format.json { render json: {success: true}}
end
end