簡體   English   中英

Rails - 在動作之間保存參數

[英]Rails - Save parameters between actions

我有一個應用程序可以為某些日期預訂空間。 在索引頁面中,我有一個搜索表單,僅顯示從params[:query1]params[:query2]某些日期可用的空格。 然后在空間展示頁面,我有一個預訂空間的表格。

我想在空間顯示頁面中也保留params[:query1]params[:query2]作為預訂表單的默認值。

索引.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 %>

顯示.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 %>

您可以使用 session 來存儲您的查詢並在整個應用程序中使用它們。 您可以在索引操作中將查詢存儲在 session 中,如下所示:

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

然后在您的顯示操作中,您可以像這樣訪問 session:

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 %>

了解更多關於session

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM