无法在 Rails 中保存新记录
Unable to save new record in Rails
我创建了一个新模型,"tools",它将用于创建设备记录,稍后将附加到相关项目。然而,首先我需要为每个工具创建一个记录。我已经创建了所有必要的页面,就像我对类似模型所做的那样,但是当我尝试保存记录时,我被重定向到我的根页面,表明记录没有保存。由于我没有收到错误消息,所以我很难判断问题出在哪里。
新表格
<%= 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
来自 tool.save!我能够找到问题所在。由于我希望记录既属于用户又属于项目,因此我需要建立一个中介模型来处理这种关系。通过将此模型基于具有唯一 1:many 关系的先前模型,我没有考虑这种不允许记录保存的更复杂的关系。
我创建了一个新模型,"tools",它将用于创建设备记录,稍后将附加到相关项目。然而,首先我需要为每个工具创建一个记录。我已经创建了所有必要的页面,就像我对类似模型所做的那样,但是当我尝试保存记录时,我被重定向到我的根页面,表明记录没有保存。由于我没有收到错误消息,所以我很难判断问题出在哪里。
新表格
<%= 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
来自 tool.save!我能够找到问题所在。由于我希望记录既属于用户又属于项目,因此我需要建立一个中介模型来处理这种关系。通过将此模型基于具有唯一 1:many 关系的先前模型,我没有考虑这种不允许记录保存的更复杂的关系。