好吧,我必须错过简单的东西。Rails表单验证在提交之前出现在页面加载之前
我使用的部分“/shared/_error_messages.html.erb”来处理
<%= render 'shared/error_messages', object: f.object %>
(一个用于添加程序,一个用于添加数据)。
当我导航到任何表单(/ programs/new和metrics/new)时,页面加载时显示验证。
的programs_controller和metrics_controller在结构上相同(交换@metrics为@programs在metrics_controller):
#programs_controller.rb
def new
@programs = Program.new(params[:name])
if @programs.save
flash[:success] = "Program saved"
redirect_to "/program"
else
render 'new'
end
end
任何想法可能是造成这个?
这里的部分:
<% if object.errors.any? %>
<div id="error_explanation">
<div class="alert alert-error">
The form contains <%= pluralize(object.errors.count, "error") %>.
</div>
<ul>
<% object.errors.full_messages.each do |msg| %>
<li>* <%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
我没有看到你的代码任何可能阻止'error_messages'从显示出来的部分? – oldergod
我认为在提交被推送之前不会有Object.errors? – Chiperific
但是,那么检查那里的代码是否存在错误?你有'<%if object.errors.any? %>'在错误部分的顶部? – oldergod