我正在使用Bootstrap-Sass和Formstatic。我想應該會像在這幅圖中一樣,在Formstatic字段旁邊自動顯示錯誤消息:here http://asciicasts.com/system/photos/227/original/E185I06.pngRails:顯示錯誤消息[bootstrap-sass,formtastic]
但即使用戶輸入了無效輸入,我的應用程序也不會顯示錯誤消息。這似乎是一個簡單的問題,但我無法弄清楚背後的原因。
PostController中
# 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
端
PostModel
validates :name, :presence => true
validates :content, :presence => true,
:length => { :minimum => 10, :maximum => 300}
_form(POST)
<% @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 %>
UPDATE:在PostController中,我刪除了以下兩行
#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)"]}>
所以PR問題在於我渲染json的方式是錯誤的。有人可以幫我解決這個問題嗎?
1)我離開所有字段爲空,然後按 「創建」 2)I爲內容字段寫入少於10個字符,然後按「創建」 這兩個必須阻止我從保存帖子,他們做。但他們不會拋出錯誤信息。換句話說,驗證工作正常,但顯示錯誤消息不起作用。我如何使它工作? –
@MaximusS我更新我的代碼,你可以試試這個請 –
它似乎沒有工作。 –