Project
및 Domain
두 엔티티가 있습니다. Project belongs_to Domain
및 Domain has_many Projects
. 그래서 나는 project index view
에서 양식을 채 웁니다. accepts_nested_attributes_for :domain
을 project.rb
에 추가하면 텍스트 필드가 보입니다. 해당 라인을 추가하면 텍스트 필드가 사라집니다.레일에 대한 중첩 된 양식 4.0
또한 로그 파일에 다음과 같이 표시됩니다. 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"=> "✓", " 프로젝트 "=>"테스트 ","도메인 "=> {"name "=>"test123.com "}},"커밋 "=>"프로젝트 만들기 "}
It projects
에 내 domain_id
을 포함하는 것이 중요합니다. 이 문제를 해결하려면 어떻게해야합니까? 당신의 project_params
방법은 허용하지 않기 때문에
def new
@project = ...
@project.build_domain
...
end
로그의 Unpermitted parameters: domain.
메시지는 다음과 같습니다