Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails 4.0中的嵌套表单_Ruby On Rails_Ruby On Rails 4_Nested Forms_Nested Attributes - Fatal编程技术网

Ruby on rails rails 4.0中的嵌套表单

Ruby on rails rails 4.0中的嵌套表单,ruby-on-rails,ruby-on-rails-4,nested-forms,nested-attributes,Ruby On Rails,Ruby On Rails 4,Nested Forms,Nested Attributes,我有两个实体,Project和Domain项目属于域,域有许多项目。因此,我从我的项目索引视图填充表单,如果我不添加 接受project.rb中的域的嵌套属性。我可以看到文本字段,如果我添加了该行,文本字段将消失 我在日志文件中也得到了这一点:未经允许的参数:domain 项目控制员: def create @domain = params[:domain][:name] @domain = Domain.find_or_create_by(name: @domain) @p

我有两个实体,
Project
Domain
项目属于域
域有许多项目
。因此,我从我的
项目索引视图
填充表单,如果我不添加
接受
project.rb中的域
的嵌套属性。我可以看到文本字段,如果我添加了该行,文本字段将消失

我在日志文件中也得到了这一点:
未经允许的参数:domain

项目控制员:

 def create
   @domain = params[:domain][:name]
   @domain = Domain.find_or_create_by(name: @domain)
   @project = current_user.projects.new(project_params)
   @project.domain_id = @domain.id
   if @project.save
   end
 end

def project_params
  params.require(:project).permit(:name, :user_id, domain_attributes: [:name])
end
看法


只有当我不为:域添加
接受\u嵌套的\u属性\u时,我才会得到这个

参数:{“utf8”=>“✓", "项目“=>{”name“=>“test”,“domain”=>{“name”=>“test123.com”}},“commit”=>“Create project”}


项目中有我的
域id
很重要。如何解决此问题。

您需要构建一个域,以便在新操作中有一个对象将用于域的
字段。\u:domain

def new
  @project = ...
  @project.build_domain
  ...
end

日志中的
未授权参数:域。
消息是因为在
项目参数
方法中,您不允许使用
:域
参数,但您的表单正在发送一个参数。这应该是一个很好的想法,它只是一个警告。

您需要构建一个域,以便在您的新操作中有一个对象要在域的
字段中使用:

def new
  @project = ...
  @project.build_domain
  ...
end
日志中的
未授权参数:域。
消息是因为在
项目参数
方法中,您不允许使用
:域
参数,但您的表单正在发送一个参数。这应该是个好主意,这只是一个警告