0

Formstatic と共に Bootstrap-Sass を使用しています。この図のように Formstatic のフィールドの横にエラー メッセージが自動的に表示されるはずだと思いました: (ソース: asciicasts.com )ここ

しかし、ユーザーが無効な入力を行っても、私のアプリはエラー メッセージを表示しません。これは簡単な問題のようですが、背後にある理由がわかりません。

ポストコントローラー

# POST /posts
# POST /posts.json
  def create
@post = Post.new(params[:post])
@post.view = 0
@post.like = 0
@post.hate = 0

respond_to do |format| 
  if @post.save
    @posts = Post.paginate(:page => params[:page], order: 'like desc', per_page: 10) 
    format.html { redirect_to posts_path }
    format.json { render json: @post, status: :created, location: @post }
  else
    format.html { render action: "new" }
    format.json { render json: @post.errors, status: :unprocessable_entity }
  end
end

終わり

投稿モデル

  validates :name,  :presence => true
  validates :content, :presence => true,
                      :length => { :minimum => 10, :maximum => 300}

_form (投稿)

<% @post = Post.new %>
<%= semantic_form_for @post do |f| %>
<%= f.semantic_errors :name %>
<%= f.inputs do %>
     <%= f.input :name, :label => 'name' %>
     <%= f.input :content, :label => 'body' %>
<% end %>
<%= f.actions do %>
    <%= f.action :submit, :button_html => { :class => "btn btn-primary" }, :as => :button  %>
    <%= f.action :cancel, :as => :link %>
<% end %>

更新: PostController で、次の 2 行を削除しました

    #format.html { render action: "new" }
    #format.json { render json: @post.errors, status: :unprocessable_entity }

と追加

    render @post.errors

それから、私は得ました

@messages={:name=>["can't be blank"], :content=>["can't be blank", "is too short (minimum is 10 characters)"]}>

問題は、json をレンダリングする方法が間違っていることです。誰かがそれを修正する方法を手伝ってもらえますか?

4

1 に答える 1

0

つまり、またはに値を入力しないとエラーが発生し、値の長さが 10 未満で 300 を超えるとエラーが発生しますnamecontentnamecontentcan't be blankcontent

無効な入力の検証に合格したい場合は、validates_format_of検証に合格する必要があります。

名前またはコンテンツに無効な入力を入れていますか? 入力した無効な入力を提供できますか?

アップデート

 # in /config/initializers/formtastic_config.rb. 

 Formtastic::SemanticFormBuilder.inline_errors = :sentence

ビデオを参照してください: http://railscasts.com/episodes/185-formtastic-part-2

コードを取得 : https://github.com/ryanb/railscasts-episodes/tree/master/episode-185

于 2012-11-20T04:37:16.627 に答える