ruby-on-rails - 创建操作不起作用(对于有很多的模型)
问题描述
我正在构建一个 Rails 应用程序,它执行以下操作:用户可以创建一个新项目,并且在每个项目中,它可以创建不同的论文。
我从外层开始构建它(意思是,在开始编写论文部分之前,我首先希望能够创建、更新、删除一个项目)。
我有以下问题:我为新实体编写了代码并创建了操作,project_controllers
但未保存新实体。(它不显示index.html.erb
并_form.html.erb
保持渲染,这意味着它没有保存)
我认为问题在于项目has_many
论文,并且由于我尚未对论文部分进行编码,因此会产生问题。但我不确定这是否是正确的答案。
项目.rb
class Project < ApplicationRecord
has_many :papers, dependent: :destroy
belongs_to :user
end
项目控制器.rb
class ProjectsController < ApplicationController
before_action :set_project, only: [:show, :edit, :update, :destroy]
def index
@projects = Project.all
end
def show
end
def new
@project = Project.new
end
def create
@project = Project.new(project_params)
@project.save
if @project.save
redirect_to projects_path()
else
render :new
end
end
def edit
end
def update
@project.update(project_params)
redirect_to project_path(@project)
end
def destroy
@project.destroy
redirect_to projects_path
end
private
def project_params
params.require(:project).permit(:title, :body)
end
def set_project
@project = Project.find(params[:id])
end
end
新的.html.erb
<%= render 'form', project: @project %>
_form.html.erb
<div class="container">
<div class="row ">
<div class="col-sm-4 col-sm-offset-4">
<%= form_for(@project) do |f| %>
<div class="form-group">
<%= f.label :title, "Title of the Project"%>
<%= f.text_field :title, as: :string, class: 'form-control'%>
</div>
<div class="form-group">
<%= f.label :body, "Description of the Project"%>
<%= f.text_area :body, rows: 20, class: 'form-control' %>
</div>
<%= f.submit "Confirm", class:"btn btn-secondary btn-lg" %>
<% end %>
</div>
</div>
</div>
解决方案
推荐阅读
- cryptography - 如何确定此代码是否已加密或编译,然后对其进行逆向工程?
- c - C中正确的fscanf
- java - 无法运行 testng 程序
- java - 如何再次提示用户输入有效值?
- flutter - 如何在颤动中隐藏堆栈小部件中的特定子项
- apache-kafka - 如何使用千分尺+普罗米修斯在springboot中为生产者收集指标?
- python - 基于其他变量定义 Gurobi 变量
- c - for 循环是否由于 unsigned int 溢出而终止?
- elasticsearch - 使用 shingle 的 Elasticsearch 建议
- python - ImportError:从 requirements.txt 安装时无法导入名称“main”