Rails - сохранение параметров между действиями - PullRequest
0 голосов
/ 19 апреля 2020

У меня есть приложение, которое бронирует места на определенные даты. На странице индекса у меня есть форма поиска, чтобы отобразить только те пробелы, которые доступны от params [: query1] до params [: query2] определенные даты. Затем на странице космического шоу у меня есть форма для бронирования места.

Я бы хотел сохранить params [: query1] и params [: query2] также на странице космического шоу в качестве значения по умолчанию для формы бронирования.

index. html .erb:

<%= form_tag spaces_path, method: :get, class: "form-inline" do %>
  <%= label_tag :query1, "Check in" %>
  <%= date_field_tag :query1, params[:query1], class: "form-control" %>
  <%= label_tag :query2, "Check out" %>
  <%= date_field_tag :query2, params[:query2], class: "form-control" %>
  <%= submit_tag "Search", class: "btn" %>
<% end %>

show. html .erb

<%= form_with(model: [@space, @booking], local: true) do |f| %>
  <%= label_tag :check_in, "Check in" %>
  <%= f.date_field :check_in, value: params[:query1], class: "form-control" %>
  <%= label_tag :check_out, "Check out" %>
  <%= f.date_field :check_out, value: params[:query2], class: "form-control" %>
  <%= submit_tag "Reserve", class: "btn" %>
<% end %>

1 Ответ

2 голосов
/ 19 апреля 2020

Вы можете использовать сеанс для хранения ваших запросов и использовать их во всем приложении. Вы можете сохранить свои запросы в сеансе в своем действии индекса, например:

def index
  session[:query1] = params[:query1]
  session[:query2] = params[:query2]
end

Затем в своем действии шоу вы можете получить доступ к сеансу следующим образом:

def show
  @query1 = session[:query1]
  @query2 = session[:query2]
end

В своей форме на странице показа вы можете использовать переменные экземпляра:

<%= form_with(model: [@space, @booking], local: true) do |f| %>
  <%= label_tag :check_in, "Check in" %>
  <%= f.date_field :check_in, value: @query1, class: "form-control" %>
  <%= label_tag :check_out, "Check out" %>
  <%= f.date_field :check_out, value: @query2, class: "form-control" %>
  <%= submit_tag "Reserve", class: "btn" %>
<% end %>

Подробнее о сеанс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...