2017-03-29 2 views
0

Haben Video-Tutorials verfolgt, immer wieder gesucht, nicht bekommen. Würde mich über Hilfe freuen.Cocoon link_to_add_association funktioniert nicht

Mein Hauptproblem ist, dass die link_to_add_association nicht funktioniert und ich bekomme immer noch einen fehlenden Template-Fehler.

"ActionView :: MissingTemplate in Anwendungen # new"

Dort heißt es: Fehlende Teil Anwendungen/_question_fields, application/_question_fields mit {: locale => [: en]: Formate => [: html] ,: variants => [],: handlers => [: roh,: erb,: html,: builder,: ruby,: kaffee,: jbuilder]}. Gesucht in: * "/ Benutzer/AndyAir/projects/freunde-app/app/views" * "/Users/AndyAir/.rbenv/versions/2.2.3/lib/ruby/gems/2.2.0/gems/ ersinnen-4.2.1/app/views“

Modell

class Application < ApplicationRecord 
belongs_to :user 

has_many :questions 

accepts_nested_attributes_for :questions, reject_if: :all_blank, allow_destroy: true 

validates :name, :description, presence: true 
end 

Controller

class ApplicationsController < ApplicationController 
before_action :find_application, only: [:show, :edit, :update, :destroy] 
before_action :authenticate_user! 

def index 
    @applications = Application.all.order("created_at DESC").limit(3) 
end 

def new  
    @application = Application.new 
    @application.questions.build 
end 

def create 
    @application = Application.new(application_params) 

    if @application.save 
     redirect_to @application 
    else 
     render 'new' 
    end 
end 

def show 
end 

def edit 
end 

def update 
    if @application.update(application_params) 
     redirect_to @application 
    else 
     render 'edit' 
    end 
end 


def destroy 
    @application.destroy 
    redirect_to root_path 
end 

private 

def find_application 
    @application = Application.find(params[:id]) 
end 

def application_params 
    params.require(:application).permit(:name, :description, questions_attributes: [:id, :name, :_destroy]) 
end 

def after_sign_out_path_for(resource_or_scope) 
    redirect_to root_path 
end 
end 

Ansichten/Anwendungen/new

<%= form_for @application do |f| %> 
    <% if @application.errors.any? %> 
     <div id="errors"> 
     <p><%= @application.errors.count %> Prevented this application from saving</p> 
     <ul> 
      <% @application.errors.full_messages.each do |msg| %> 
      <li><%= msg %></li> 
      <% end %> 
     </ul> 
     </div> 
    <% end %> 
    <div class="field"> 
     <%= f.label :title %><br> 
     <%= f.text_field :name, placeholder: "Name of Your Friend Test", class: "form-control" %><br> 
     <%= f.label :description %><br> 
     <%= f.text_field :description, placeholder: "Write a witty tagline for your test.", class: "form-control" %><br> 
    </div> 
    <h3>Questions</h3> 
     <%= f.fields_for :questions do |question| %> 
      <div id="questions"> 
       <div class="field"> 
       <%= render 'questions_fields', f: question %> 
      <div class="links"> 
       <%= link_to_add_association 'Add Question', f, :questions %> 
       </div> 
       </div> 
      </div> 
     <% end %> 
    <br> 
    <div class="form-actions"> 
     <%= f.button :submit %> 
    </div> 
<% end %> 

views/Anwendungen/_questions_fields.html.erb

<div class="nested-fields"> 
    <%= f.text_field :question %> 
    <%= link_to_remove_association "remove task", f %> 
</div> 

Antwort

0

Ihre Ansicht wird fälschlicherweise für Cocoon benannt, um automatisch abzuleiten. Es sucht nach _question_fields (singular), während Sie _questions_fields haben.

Entweder benennen Sie die teilweise (es nur eine einzige Frage enthält, so imho es logisch erscheint), aber Sie können auch overrule the default partial name wie folgt:

<%= link_to_add_association 'Add Question', f, :questions, partial: 'questions_fields' %> 
+0

Thank you so much! Das hat perfekt funktioniert! Auch, tolle Arbeit auf dem Juwel! – andywalt

1

Bitte versuchen Sie es link_to_add_association aus fields_for.As nehmen es keine Fragen noch sind, wird die link_to_add_association nie gezeigt.

<%= f.fields_for :questions do |question| %> 
    <div id="questions"> 
     <div class="field"> 
      <%= render 'questions_fields', f: question %> 
     </div> 
    </div> 
<% end %> 
<div class="links"> 
    <%= link_to_add_association 'Add Question', f, :questions %> 
</div> 
Verwandte Themen