我有类似
的东西<div class="userInput">
<%= form_for :scribble do |f| %>
<%= f.text_area :scribble, cols: 65, rows: 4,:maxlength => 255%>
<%= f.submit %>
<% end %>
</div>
1)我的Scribble模型具有最小和最大字符长度验证,现在如何在此处打印错误消息。如果它是一个实例变量,我知道如何打印,但这是一个符号。
2)此代码存在于application.html.erb
中。我无法理解如何将其移动到除了appliation之外的Scribble控制器的视图中。问题是这个表格不是独立的,它是控制器Scribbles的动作索引显示的一部分,(并且表格应该始终显示),动作索引已经在做涂鸦列表。
控制器
def index
@scribbles = Scribble.order("scribbles.scribble DESC").all
end
def show
end
def new
end
def create
@scribble = Scribble.new(profile_params)
@scribble.likes =@scribble.dislikes =@scribble.shares=0;
@scribble.save
@scribbles = Scribble.order("scribbles.scribble DESC").all
render :index
end
答案 0 :(得分:0)
这里我如何输出任何错误或验证消息:
<强>控制器:强>
def create
@scribble = Scribble.new(profile_params)
@scribble.likes =@scribble.dislikes =@scribble.shares=0;
if @scribble.save
flash[:notice] = "Scribble is successfully created"
redirect_to root_url
else #
render 'index'
end
end
<强>查看:强>
如果有_error_messages.html.erb
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert callout text-center" data-closable>
<p><strong>This form contains <%= pluralize(object.errors.count, 'error') %>.</strong></p>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<button class="close-button" aria-label="Dismiss alert" type="button" data-close>
<span aria-hidden="true">×</span>
</button>
</div>
</div>
<% end %>
渲染错误:
现在,您可以调用<%= render 'layouts/error_messages', object: @scribble %>
并将其放在视图中的任何位置以呈现错误验证。 note: the object is passed, so it can be re-use to any form.
归功于Hartl Tutorial。