Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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 ActiveRecord::RecordNotFound in BookingsController#create无法';我找不到没有身份证的约会_Ruby On Rails_Ruby On Rails 3_Activerecord - Fatal编程技术网

Ruby on rails ActiveRecord::RecordNotFound in BookingsController#create无法';我找不到没有身份证的约会

Ruby on rails ActiveRecord::RecordNotFound in BookingsController#create无法';我找不到没有身份证的约会,ruby-on-rails,ruby-on-rails-3,activerecord,Ruby On Rails,Ruby On Rails 3,Activerecord,app/controllers/bookings\u controller.rb:45:in'create' 我有一个约会对象和一个预订对象。预约属于预约,预约有很多预约 我想创建一个具有:约会\u id的预订对象 这是我的密码: <% @appointments.each do |appointment| %> <%= link_to "new Booking", new_appointment_booking_path(appointment)%> <%

app/controllers/bookings\u controller.rb:45:in'create'

我有一个约会对象和一个预订对象。预约属于预约,预约有很多预约

我想创建一个具有:约会\u id的预订对象

这是我的密码:

<% @appointments.each do |appointment| %>
    <%= link_to "new Booking", new_appointment_booking_path(appointment)%>
<%end%>
路线

resources :appointments do
    resources :bookings
end
当我提交预订表时,会传递正确的预约id 但我得到了以下错误:

ActiveRecord::RecordNotFound in BookingsController#create
Couldn't find Appointment without an ID
预订表格

<%= simple_form_for(@booking) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :appointment_date %>
    <%= f.input :start_time %>
    <%= f.input :end_time %>
    <%= f.input :name %>
    <%= f.input :phone_number %>
    <%= f.hidden_field :appointment_id%>  

 <div class="form-actions">
     <%= f.button :submit %>
  </div>

您没有将约会id传递回
创建方法

create
方法除了从表单输入通过params散列传入的信息之外,什么都不知道。由于您尚未在表单中为
约会\u id
添加字段,因此该字段不会传递给控制器,并且在
创建
方法中不可用

要解决此问题,请向表单中添加新的隐藏输入,如下所示:

<%= f.input :appointment_id, :type => :hidden %>
:隐藏%>

现在,您正在通过表单post显式传递id,因此它将在您的控制器中可用。

您的表单是什么样子的?您能告诉控制器中的第45行是哪一行吗?第45行正在创建操作:@appointment=appointment.find(params[:appointment\u id])感谢您的回复。我试过了,约会id已经通过了,但还是出现了同样的错误。你知道还有什么吗?
appointment\u id
参数将在你的
booking
中,你是否尝试过这样访问它:
params[:booking][:appointment\u id]
<%= f.input :appointment_id, :type => :hidden %>