Rails 3:如何以嵌入形式显示错误消息? [英] Rails 3: How to display error messages in embedded form?
问题描述
我是 Rails 的新手试图建立我的第一个嵌入式表单.表单本身有效,但我无法确定如何将验证错误消息发送到视图.我假设 f.object.errors 会提供访问权限,但是虽然据说该方法存在,但 f.object.errors.count 总是返回 0,而 f.object.errors.any?返回假.除了不显示实际的错误消息外,表单按预期工作 - 即未能插入无效数据并返回到验证失败的表单.模型、控制器和下面列出的视图 - 非常感谢任何帮助.
<预><代码>...<!-- 嵌入在boards/show.html.erb中的表单--><%= form_for([@board, @board.boardthreads.build]) 做 |f|%><div class="field"><%= f.label :title%><br/><%= f.text_field :title %><div class="field"><div class="actions"><%= f.submit %>
<%结束%>...类 Boardthread <ActiveRecord::Base归属地:用户归属地:董事会验证 :user, :presence =>真的验证 :board, :presence =>真的验证 :title, :presence =>真的结尾类 BoardthreadsController <应用控制器定义创建@board = Board.find(params[:board_id])@boardthread = @board.boardthreads.new(params[:boardthread])@boardthread.user = current_user@boardthread.saveredirect_to board_path(@board)结尾结尾
这是因为当你失败时,你又在你的 Embedded_form 中构建了一个对象.您需要在表单中使用失败的对象.
在您的新操作中,您需要构建您的对象并在您的内嵌表单中使用它.在你创建的过程中你会使用它,因为它已经定义了
<%= form_for([@board, @boardthread]) do |f|%><% @boardthread.errors.full_messages.each do |msg|%><p><%=msg%></p><%结束%><div class="field"><%= f.label :title%><br/><%= f.text_field :title %>