2017-09-29 8 views
0

Je suis en train d'afficher un formulaire de commentaires dans la vue de mon type modèle (types # show)Affichage form_for pour la méthode de commentaires dans le show vue

Les routes sont définies comme suit

Rails.application.routes.draw do 
    devise_for :users 
    root to: "products#index" 
    resources :types do 
    member do 
     get :vote, :as => :vote 
     post "vote" => "types#vote" 
     get :comment, :as => :comment 
     post "comment" => "types#comment" 
    end 
    end 
    resources :models 
    resources :products 
    resources :brands 
    # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html 
end 

Le commentaire méthode types_controller.rb

def comment 
    user = current_or_guest_user 
    @type = Type.find(params[:id]) 
    user_review = params[:review] 
    @type.review(user_review, user) 
    redirect_to @type, notice: 'Thank you for your comment.' 
    end 

J'ai des problèmes de réglage correctement le form_for dans les vues

<%= form_for comment_type_path(@type) do |f| %> 

    <div><h3>How likely are you to recommend our service to your friends, family or colleagues?</h3></div> 



    <div><h3>Can you please tell us why you gave us this score?</h3></div> 
    <div class="field-box"> 
     <br> 
     <%= f.text_area :review, class: "form-control", rows: "4" %><br> 
    </div> 




    <div class="actions"> 
     <%= f.submit 'Vote', class: 'btn-flat success new-product' %> 
    </div> 

    <% end %> 

me donne l'erreur suivante: Aucun résultat de route [POST] "/ types/5"

<%= form_for @type, url: comment_type_path(@type), method: :post do |f| %> 
    <div><h3>How likely are you to recommend our service to your friends, family or colleagues?</h3></div> 



    <div><h3>Can you please tell us why you gave us this score?</h3></div> 
    <div class="field-box"> 
     <br> 
     <%= f.text_area :review, class: "form-control", rows: "4" %><br> 
    </div> 




    <div class="actions"> 
     <%= f.submit 'Vote', class: 'btn-flat success new-product' %> 
    </div> 

    <% end %> 

donne

ArgumentError dans Types # show Afficher/home/jan/Documents/supplément/app/views/types/show.html.erb où la ligne n ° 62 soulevé:

mauvais nombre d'arguments (0 pour 2)

+0

Quelle est la ligne 62 de 'show.html.erb'? ArgumentError peut être dû à votre appel de méthode. Votre dernière syntaxe 'form_for' est correcte – kiddorails

+0

<% = f.text_area: avis, classe:" form-control ", lignes:" 4 "%>
Jan

+0

pouvez-vous créer [' gist'] (https: // gist. github.com) avec toute votre vue et votre backtrace? – kiddorails

Répondre

0

Ple ase remplacer votre form_for avec le code ci-dessous

<%= form_for @type, url: comment_type_path, method: "post" do |f| %>

+0

Cela donne la même erreur que ci-dessus: ArgumentError dans Types # show Affichage de /home/jan/Documents/supplement/app/views/types/show.html.erb où ligne # 62 soulevé: nombre incorrect d'arguments (0 pour 2) dans cette ligne '<% = f.text_area: examen, classe: "sous forme de contrôle", les lignes: "4" %>
' Essayez – Jan

+0

this '<% = f.text_area (: revue, classe:" form-control ", lignes:" 4 ")%>' – Asmita

+0

Merci, toujours la même erreur. Je suis confus à pourquoi cela me montre l'erreur d'argument pour les types # show et les arguments qui manquent. Cela ne montre pas du message d'erreur – Jan