Невозможно сохранить новую запись в Rails - PullRequest
0 голосов
/ 15 января 2019

Я создал новую модель, «инструменты», которая будет использоваться для создания записей оборудования, которое впоследствии будет прикреплено к соответствующим проектам. Однако для начала мне нужно создать запись для каждого из инструментов. Я создал все необходимые страницы, как и в аналогичных моделях, однако, когда я пытаюсь сохранить запись, я перенаправляюсь на свою корневую страницу, что указывает на то, что запись не сохранена. Поскольку я не получаю сообщение об ошибке, мне трудно сказать, в чем проблема.

Новая форма

<%= form_with model: @tool, local: true do |form| %>

  <p>
    <%= form.label :name, :class => "form-component-header" %><br>
    <%= form.text_field :name %>
  </p>

  <p>
    <%= form.submit :class => "form_button" %>
  </p>

  <% end %>

  <% Tool.find_each do |tool| %>
    <%= tool.name %>
    <%= link_to 'Delete Tag', tools_path(@tool),
              method: :destroy,
              data: { confirm: 'Are you sure?' } %>
  <% end %>

Контроллер

class ToolsController < ApplicationController
before_action :require_user, only: [:edit, :update, :destroy]
before_action :set_search

def new
    @tool = Tool.new
end

def create
    tool = Tool.create(tool_params)
    if tool.save
        redirect_to tools_path
    else
        redirect_to 'root'
    end
end

def destroy
    @tool = Tool.find(params[:id])
    @tool.destroy

    redirect_to tools_path
end

private
    def tool_params
        params.require(:tool).permit(:name)
    end
end

Модель

class CreateTools < ActiveRecord::Migration[5.2]
  def change
    create_table :tools do |t|
      t.string :name

      t.timestamps
    end
  end
end

1 Ответ

0 голосов
/ 15 января 2019

с помощью tool.save! Я смог найти проблему. Поскольку я предполагал, что запись будет принадлежать как пользователю, так и проекту, мне нужно было установить промежуточную модель для обработки этих отношений. Основывая эту модель на предыдущей модели с отношением 1: многие, я не учел это более сложное отношение, не позволяющее сохранить запись.

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