【发布时间】:2016-02-01 23:10:34
【问题描述】:
项目更新中的记录正在上传到新的项目记录中。
我正在尝试将 cocoon gem 用于嵌套属性,但它会添加新的项目记录,而不仅仅是在同一个项目中添加新的项目更新
我的 /views/projects/show.html.haml
中有表格= form_for @pu do |f|
#updates
= f.simple_fields_for :project_updates do |u|
= render 'update_fields', f: u
.links
= link_to_add_association 'add updates', f, :project_updates, class: "button"
= f.submit "Submit updates", class: "button"
然后在我的 projects_controller.rb
def show
@pu = Project.new
end
def create
@project = Project.new(project_params)
respond_to do |format|
if @project.save
format.html { redirect_to @project, notice: 'Project was successfully created.' }
format.json { render :show, status: :created, location: @project }
else
format.html { render :new }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
end
private
def project_params
params.require(:project).permit(:name, :address, :client, :budget,
project_updates_attributes: [:updates, :notes, :done, :impact_schedule, :impact_budget, :_destroy])
end
如果可能的话,我想在同一个项目中不断添加记录
EDIT,添加编辑和更新
def edit
end
def update
respond_to do |format|
if @project.update(project_params)
format.html { redirect_to @project, notice: 'Project was successfully updated.' }
format.json { render :show, status: :ok, location: @project }
else
format.html { render :edit }
format.json { render json: @project.errors, status: :unprocessable_entity }
end
end
end
只是标准的编辑和更新脚手架。
仍然存在在展示页面(项目展示页面)内应用嵌套属性(表单)的问题,并且当尝试在项目中添加新任务时,它会添加新项目记录并将任务包含在该新项目中,而不是更新当前项目中的任务。如果它可以帮助重写我所拥有的,修复,将不胜感激。
编辑:
根据帮助,结果如下:
已添加状态 1(单击提交更新),但是,当我刷新页面时,会显示状态 1 输入字段,然后当我尝试添加另一个更新(状态 2)时,会填充原始状态 1(除了新的更新),因此将不断添加以前添加的记录。我只是希望这个显示页面只在记录中添加新的更新,而不是在输入字段中显示现有记录。
编辑 2:
显示页面中的新表单,必须根据下面的建议答案消除url,因为它没有给我任何路线错误
= simple_form_for @project do |f|
#updates
= f.simple_fields_for :project_updates do |u|
= render 'project_update_fields', f: u
.links
= link_to_add_association 'add updates', f, :project_updates, class: "button"
= f.submit "Submit updates", class: "button"
_project_update_fields.haml部分
.nested-fields
= f.input :updates, placeholder: "Updates", label: false
.small-2.column
= f.input :impact_budget, as: :boolean
.small-2.column
= f.input :impact_schedule
.small-12.column
= link_to_remove_association "remove task", f, class: "button"
【问题讨论】:
-
您缺少
edit和update操作,或者您只是没有向我们展示它们? -
@nathanvda 我更新了我的问题,它只是标准的脚手架操作
标签: ruby-on-rails ruby ruby-on-rails-4 nested-attributes cocoon-gem