1

我有兩個實體ProjectDomainProject belongs_to DomainDomain has_many Projects。所以我從我的project index view填充表格,如果我不添加 accepts_nested_attributes_for :domainproject.rb我可以看到文本字段,如果我添加該行,則文本字段消失。在rails 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「=>」test「,」domain「=> {」name「=>」test123.com「}},」commit「=>」Create Project「}

It我的domain_idprojects中很重要。我能做些什麼來解決這個問題。

回答

1

你需要建立一個域,以便有要在fields_for :domain在您的新動作使用的對象:

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

在日誌中Unpermitted parameters: domain.消息是因爲在你project_params方法,你不允許一個:domain參數,但您的表單正在發送一個。應該好好想想,這只是一個警告。