1

我有两个实体,Project并且Domain. Project belongs_to DomainDomain has_many Projects。因此,project index view我 从我的 .accepts_nested_attributes_for :domainproject.rb

我也在我的日志文件中得到这个:Unpermitted parameters: 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

看法

 <%=simple_form_for @project do |f|%>
   <%= f.input :name, label: 'Project name:'%>
   <%= f.simple_fields_for :domain do |d|%>
      <%= d.input :name, label: 'Domain name:', placeholder: 'domain.co.uk'%>
   <%end%>
   <%=f.button :submit, class: 'btn btn-success btn-sm'%>
  <%end%>

只有当我不添加时我才会得到这个accepts_nested_attributes_for :domain

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

重要的是让我domain_idprojects。我能做些什么来解决这个问题。

4

1 回答 1

1

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

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

您日志中的Unpermitted parameters: domain.消息是因为在您的project_params方法中您不允许使用:domain参数,但您的表单正在发送参数。这应该是很好的想法,这只是一个警告。

于 2013-11-04T17:37:24.807 回答