使用接受嵌套属性+ form_for构建一些简单的项目和堆栈。
现在我对代码没有任何问题,所有工作和保存,但是当我取消注释accepts_nested_attributes_fori有错误或我的模型没有创建(我尝试过去5天的differente变种,但不能构建这个权利..)。我认为我在控制器中有问题..我的代码(没有accepted_nested_attributes工作)。 型号:
class Project < ActiveRecord::Base
belongs_to :user
has_one :j_project
has_one :p_project
# accepts_nested_attributes_for :p_project, :j_project
validates :user_id, :title, presence: true
end
查看:
= form_for(@project) do |f|
= f.label :title
= f.text_field :title
= fields_for @p_project do |fa|
= fa.label :requester
= fa.text_field :requester
= fields_for @j_project do |ffa|
= ffa.label :j_login
= ffa.text_field :j_login
= ffa.label :j_password
= ffa.text_field :j_password
= f.submit "Save", class: "btn btn-large btn-primary"
控制器:
class ProjectsController < ApplicationController
def new
@project = Project.new
@p_project = @project.build_p_project
@j_project = @project.build_j_project
end
def create
@project = Project.new(project_params)
@project.user = current_user
@p_project = @project.build_p_project(p_project_params)
@j_project = @project.build_j_project(j_project_params)
if @project.save && @p_project.save && @j_project.save
flash[:success] = "New project was added successfully"
redirect_to user_root_path
else
render 'new'
end
end
private
def project_params
params.require(:project).permit(:title)
end
def p_project_params
params.require(:p_project).permit(:requester)
end
def j_project_params
params.require(:j_project).permit(:j_login, :j_password)
end
end
答案 0 :(得分:0)
问题在于验证: j_project和p_project中的project_id - 当我将它们驱逐时,一切正常。 我也使用互联网的指南来编辑我的simple_form和控制器...但是我在谷歌找不到的问题是验证。