2014-02-18 1 views
1

레일 시작 안내를 검토하고 주석에 오류 유효성 검사를 추가하지만 오류가있는 경우 양식이 다시 채워지지 않습니다.오류가있는 경우 다른 컨트롤러에서 양식을 다시 채우는 방법

은 내가 플래시 오류를 (제대로 작동)을 확인하지만 오류가있는 경우 내 양식이 비어 될 /car/show.html.erb

에서 날짜를 게시 할 수 있습니다. 내 comments_controller.rb 컨트롤러의 코드를 아래

: 자동차 아래

def create 
@car = Car.find(params[:car_id]) 
    if @comment = @car.comments.create(params[:comment].permit(:email,:sujet,:commentaire)) 
    flash[:error] = @comment.errors 
    flash.keep[:error] 
    render 'car/show' 
    else 
    redirect_to car_path(@car) 
end 
end 

/show.html.erb

<h1>Fiche détaillée</h1> 

<%= @car.marque %><br> 
<%= @car.modele %><br> 
<%= @car.nbkm %><br> 
<%= @car.couleur %><br> 
<%= @car.disponibilite %><br> 
<hr> 
<h1><%= pluralize(@car.comments.count,'Commentaire') %></h1> 
<% @car.comments.each do |k| %> 
<%= k.email %><br> 
<%= k.sujet %><br> 
<%= k.commentaire %><br> 
<hr> 
<% end %> 
<hr> 
<h1>Ajouter votre commentaire</h1> 
<div style='width:300px;'> 

<% flash.each do |key, msg| %> 
<p class="bg-danger" style='padding:10px;'><%= pluralize(msg.count,'error') %></p> 
    <ul><% msg.full_messages.each do |m|%> 
     <li><%= m %></li> 
    <% end %> 
<% end %> 
</ul> 


<%= form_for ([@car,@car.comments.build]) do |co| %> 

     <%= co.label :'Email' %><br> 
     <%= co.text_field :email , class: 'form-control' %><br> 
    <br> 

     <%= co.label :'Sujet' %><br> 
    <%= co.text_field :sujet , class: 'form-control'%><br> 
    <br> 

     <%= co.label :'Commentaire' %><br> 
    <%= co.text_area :commentaire , class: 'form-control' %><br> 
    <br> 

     <%= co.submit :'Envoyer votre commentaire', class: 'btn btn-info'%> 

<% end %> 

나는 컨트롤러가 동일하지 않을 때 렌더링을 처리하는 방법을 모르겠어요.

답변

0

이 시도 편집 :

def create 
@comment = Comment.new(params[:comment].permit(:email,:sujet,:commentaire)) 
    if [email protected] 
    flash[:error] = @comment.errors 
    flash.keep[:error] 
    render 'car/show' 
    else 
    redirect_to car_path(@car) 
end 
end 

자동차/표시 방법 :

def show 
@car = Car.find(params[:id]) 
@comment = @car.comments.build 
end 

변경

<%= form_for ([@car,@car.comments.build]) do |co| %> 

+0

작동하지 않습니다. ( – CodeRevenger

+0

오류? 자동차/쇼 방법을 보여줄 수 있습니까? –

+0

자, 폼에 @comment를 사용하고 있다고 가정합니다. 그 선언을'@comment = Comment.new' 또는'@comment = @ car.build_comment'와 같이'car/show' 메소드로 옮깁니다 –

관련 문제