2012-04-18 36 views
1

我正在關注Rails Guides - Getting Started教程。它製作了一個基本的Post模型和一個屬於Post的Comment模型。如何爲屬於另一個模型的模型添加表單錯誤,rails 3.1

我已經添加了一個簡單的驗證到評論模型,它的工作原理,但我不知道如何獲取表單錯誤來顯示,如果我填寫它出錯。

這裏是我的comment.rb模型

class Comment < ActiveRecord::Base 
    validates :body, presence: true 
    belongs_to :post 
end 

這裏是添加註釋的原始形式,它在職位/ show.html.erb

<h2>Add a comment:</h2> 
<%= form_for([@post, @post.comments.build]) do |f| %> 
    <div class="field"> 
    <%= f.label :commenter %><br /> 
    <%= f.text_field :commenter %> 
    </div> 

    <div class="field"> 
    <%= f.label :body %><br /> 
    <%= f.text_area :body %> 
    </div> 

    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

而且原來在創建行動comments_controller.rb

class CommentsController < ApplicationController 
    def create 
    @post = Post.find(params[:post_id]) 
    @comment = @post.comments.create(params[:comment]) 
    redirect_to post_path(@post) 
    end 
end 

我已經嘗試了很多事情,但都覺得像在摸索 黑暗。請有人指點我正確的方向嗎?

回答

1

看看dynamic_form gem - 這曾經是鐵路本身的一部分,但被抽出一段時間。有了它,你可以像這樣在線顯示錯誤:

<%= f.label :commenter %><br /> 
<%= f.text_field :commenter %> 
<%= f.error_message_on :commenter %> 
+0

工作!給讀者的快速提示:不要忘記在安裝gem後重啓服務器! – 2012-04-18 09:40:18

相關問題