Hidden_field не может найти активную запись по ее идентификатору - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь создать новое отношение ActiveRecord, принимая идентификатор current_user и идентификатор назначения в качестве внешних ключей простым нажатием кнопки пользователем.Пользователь будет принимать назначение и будет создавать эту новую связь в записи.Я уже тестировал модели в консоли и принимаю / отклоняю их работу правильно, как и предполагалось.

Когда я нажимаю кнопку, появляется сообщение об ошибке: ActiveRecord :: RecordNotFound в ContractsController # create

form_for скрытого_поля не выполняется«т пройти assignment.id правильно, параметр говорит: { "utf8"=> "✓", "authenticity_token"=> "dkGBIQxS06xiu9GR6 + aYLgA6ZArgFD5iipl7HKDCFPdXhDKjX6dSajrLlrwvLlj4IzGutcX1lT51IhM5ksxt4Q ==", "assignment_id"=> [ ""], "совершить"=>«Accept»}

Как видите, assignment_id пуст.Не уверен, что я делаю это правильно, так, как правильно это сделать?

Я в основном скопировал код из учебника Майкла Хартла по созданию Twitter, концепция похожа на пользователя, следующего за другим пользователем.Я уже проверил, что запись о назначении существует с помощью команды find (#) в консоли rails.

_accept.html.erb

<%= form_for(current_user.active_contracts.build, local: true) do |f| %>
  <div><%= hidden_field_tag :assignment_id, @assignment.id %></div>
  <%= f.submit "Accept", class: "btn btn-primary" %>
<% end %>

ContractController.rb

      def create
        @assignment = Assignment.find(params[:assignment_id])
        current_user.accept(@assignment)
        redirect_to @assignment
      end

назначение # индекс

                        <div class="col-md-9">
                            <h2><%= assignment.event_title %></h2><br>
                            <strong>Date: </strong><%= assignment.date_start.strftime("%D") %><br>
                            <strong>Time: </strong><%= assignment.time_start.strftime("%I:%M %p") %> to <%= assignment.time_end.strftime("%I:%M %p") %><br>
                            <strong>Address:</strong><br>
                                <address><%= assignment.addressline1 %><br>
                                    <% if !assignment.addressline2.blank? %>
                                        <%= assignment.addressline2 %><br>
                                        <% end %>
                                    <%= assignment.city %>, <%= assignment.state %> <%= assignment.zip %>
                                </address>
                        </div>
                        <% if assignment.user_id == current_user.id %>
                        <div class="col-md-3">
                            <%= link_to "Update", title_assignment_path(assignment), class: "btn btn-primary btn-block" %>
                        </div>
                        <% end %>
                        <% if current_user.ssp? %>
                        <div class="col-md-3">
                            <%= render 'accept' %>
                        </div>
                        <% end %>
                    </div>
                <% end %>
            </div>
...