Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails表单_有问题:表单数据未保存在Rails中的控制器实例中_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails表单_有问题:表单数据未保存在Rails中的控制器实例中

Ruby on rails Rails表单_有问题:表单数据未保存在Rails中的控制器实例中,ruby-on-rails,Ruby On Rails,我试图通过使用AJAX发布控制器实例来保存座位号。单击提交按钮后,响应标题显示STATUS 200 OK,单击预览(响应)后,数据显示在同一页面上。 我的管制员票方法座位 路由.rb文件 get '/tickets/seat' => 'tickets#seat', as: 'seat' post '/tickets/seat' => 'tickets#seat' seat.html.erb 响应预览 有人能告诉我为什么我的数据没有保存在controller实例变量中吗?首先,为什

我试图通过使用AJAX发布控制器实例来保存座位号。单击提交按钮后,响应标题显示
STATUS 200 OK
,单击预览(响应)后,数据显示在同一页面上。 我的管制员方法座位

路由.rb文件

get '/tickets/seat' => 'tickets#seat', as: 'seat'
post '/tickets/seat' => 'tickets#seat'
seat.html.erb

响应预览


有人能告诉我为什么我的数据没有保存在controller实例变量中吗?

首先,为什么需要编写自定义jqeury来执行ajax?从表单中删除
local:true
将发送AJAX请求。此外,您在控制器中的
seat
操作没有做任何有意义的工作。我强烈建议您进行实践,这将帮助您识别问题并解决它。首先,为什么您需要编写自定义jqeury来实现ajax?从表单中删除
local:true
将发送AJAX请求。此外,您在控制器中的
seat
操作没有做任何有意义的工作。我强烈建议您进行实践,这将帮助您识别问题并解决问题。
get '/tickets/seat' => 'tickets#seat', as: 'seat'
post '/tickets/seat' => 'tickets#seat'
<%= form_with(url: "tickets/seat",:html => {id:'seat'}, local: true) do |f| %>
<% plane = Trip.find(params[:trip_id]).aeroplane %>
<% erow = plane.e_row %>
<% ecol = plane.e_col %>
<% brow = plane.b_row %>
<% bcol = plane.b_col %>
<% frow = plane.f_row %>
<% fcol = plane.f_col %>
<div class="text-center"><strong><%= plane.name %></strong></div>
<div class="plane">
  <div class="cockpit">
    <h1>Please select a seat</h1>
  </div>
  <div class="exit exit--front fuselage"></div>
  <ol class="cabin fuselage">
  <!-- Economy Class Configuration -->
  <div class='text-center seat-class'><strong>Economy Class</strong></div>
  <% (1..erow).each_with_index do |i| %>
  <% alpha = '@' %>
    <li class="row">
      <ol class="seats" type="Economy">
      <% (1..ecol).each do %>
      <% alpha = alpha.next %>
      <% if Trip.find(params[:trip_id]).tickets.where("seat_class LIKE ? AND seat_number LIKE ?", "Economy","#{alpha}"+"#{i}").count==1 %>
        <li class="seat eco">
          <%= check_box_tag("seat_number[]","Economy."+"#{alpha}"+"#{i}", false, disabled: true)  %>
          <%= label("seat_number", "#{alpha}"+"#{i}",:value => "Economy."+"#{alpha}"+"#{i}") %>
        </li>
        <% else %>
        <li class="seat eco">
          <%= check_box_tag("seat_number[]","Economy."+"#{alpha}"+"#{i}")  %>
          <%= label("seat_number", "#{alpha}"+"#{i}",:value => "Economy."+"#{alpha}"+"#{i}") %>
        </li>
        <% end %>
        <% end %>
      </ol>
    </li>
    <% end %>

    <!-- First Class Configuration -->
    <div class='text-center seat-class'><strong>Premium Economy Class</strong></div>
      <% (1..frow).each_with_index do |j| %>
      <% alpha = '@' %>
    <li class="row">
      <ol class="seats" type="Premium Economy">
      <% (1..fcol).each do %>

      <% alpha = alpha.next %>
      <% if Trip.find(params[:trip_id]).tickets.where("seat_class LIKE ? AND seat_number LIKE ?", "Premium Economy","#{alpha}"+"#{j}").count==1 %>
        <li class="seat pre">
        <%= check_box_tag("seat_number[]","Premium Economy."+"#{alpha}"+"#{j}", false, :disabled => true)  %>

          <%= label("seat_number", "#{alpha}"+"#{j}",:value => "Premium Economy."+"#{alpha}"+"#{j}") %>
        </li>
        <% else %>
        <li class="seat pre">
          <%= check_box_tag("seat_number[]","Premium Economy."+"#{alpha}"+"#{j}")  %>
          <%= label(:seat_number, "#{alpha}"+"#{j}",:value => "Premium Economy."+"#{alpha}"+"#{j}") %>
        </li>
        <% end  %>
        <% end %>
      </ol>
    </li>
    <% end %>

    <!-- Business Class Configuration -->
    <div class='text-center seat-class'><strong>Business Class</strong></div>
      <% (1..brow).each_with_index do |k| %>
      <% alpha = '@' %>
    <li class="row">
      <ol class="seats" type="Business">
      <% (1..bcol).each do %>
      <% alpha = alpha.next %>
        <% if Trip.find(params[:trip_id]).tickets.where("seat_class LIKE ? AND seat_number LIKE ?", "Business","#{alpha}"+"#{k}").count==1 %>
        <li class="seat bus">
        <%= check_box_tag("seat_number[]","Business."+"#{alpha}"+"#{k}", false, {:disabled => true})  %>
          <%= label("seat_number", "#{alpha}"+"#{k}",:value => "Business."+"#{alpha}"+"#{k}") %>
        </li>
        <% else %>
        <li class="seat bus">
          <%= check_box_tag("seat_number[]","Business."+"#{alpha}"+"#{k}")  %>
          <%= label("seat_number", "#{alpha}"+"#{k}", :value => "Business."+"#{alpha}"+"#{k}") %>
        </li>
        <% end  %>
        <% end %>
      </ol>
    </li>
    <% end %>
  </ol>
  <div class="exit exit--back fuselage"></div>
</div>
<%= f.submit('confirm seats') %>

<% end %>
<div class = "ticket">
  <%= @seats %>
</div>
$(document).on('turbolinks:load', function(){
    $('#seat').submit(function(e) {
        e.preventDefault()  
        var valuesToSubmit = $(this).serialize();
        var qstring = location.search;
        console.log(valuesToSubmit);
        $.ajax({
            type: "POST",
            url: '/tickets/seat'+ qstring, //sumbits it to the given url of the form ?trip_id=1 
            data: valuesToSubmit,
            dataType: "HTML" // you want a difference between normal and ajax-calls, and json is standard
        }).done(function(data){
            console.log("success", data);

        });
        return false; // prevents normal behaviour
    }); 
});