呈现错误消息仅在一页上不起作用
Rendering error messages not working on just one page
我无法在此页面上显示错误消息。它们在任何其他页面上都可以正常显示,但不能在这个页面上显示
mod_approval.index.html.erb
<% @check_category.each do |category| %>
<%= form_for([@guide, Guide.friendly.find(@guide.id).categories.new], url: guide_mod_panel_approve_category_path, method: :post) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= hidden_field_tag :check_id, category.id %>
<%= f.hidden_field :name, :value => category.name %>
<%= f.submit "Approve" %>
<% end %>
<% end %>
mod_approval_controller
def mod_add_category
@guide = Guide.friendly.find(params[:guide_id])
@check_category = CheckCategory.where(guide_id: @guide.id).all
@category = Guide.friendly.find(@guide.id).categories.new(category_params)
if @category.save
flash[:success] = "Game category added succesfully!"
redirect_to guide_mod_panel_mod_approval_index_path(@guide)
else
render 'mod_approval/index'
end
end
路线
match '/guides/:guide_id/mod-panel/approve/category' => 'mod_approval#mod_add_category', :via => :post, as: :guide_mod_panel_approve_category
match '/guides/:guide_id/mod-panel/approve' => 'mod_approval#index', :via => :get, as: :guide_mod_panel_mod_approval_index
不太确定它们为什么不呈现 我尝试将 <%= render 'shared/error_messages', object: f.object %>
更改为 <%= render partial: 'shared/error_messages', object: f.object %>
但出现错误
undefined local variable or method `object' for #<#<Class:0x007ffdbcd1c3a8>:0x007ffdbcbdd320>
这一行<% if object.errors.any? %>
此错误渲染设置来自 Michael Hartls rails 教程,正如我所说,我对除此之外的所有其他形式都适用。
原因是当你呈现表单时,你实例化了一个新的类别:
form_for([@guide, Guide.friendly.find(@guide.id).categories.new],
您需要给 form_for
有错误的类别实例(@category
来自您的控制器)。所以我会将您的表格更改为:
form_for([@guide, @category],
然后在你的 #new
方法中确保你设置它:
@category = @guide.categories.build
我无法在此页面上显示错误消息。它们在任何其他页面上都可以正常显示,但不能在这个页面上显示
mod_approval.index.html.erb
<% @check_category.each do |category| %>
<%= form_for([@guide, Guide.friendly.find(@guide.id).categories.new], url: guide_mod_panel_approve_category_path, method: :post) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<%= hidden_field_tag :check_id, category.id %>
<%= f.hidden_field :name, :value => category.name %>
<%= f.submit "Approve" %>
<% end %>
<% end %>
mod_approval_controller
def mod_add_category
@guide = Guide.friendly.find(params[:guide_id])
@check_category = CheckCategory.where(guide_id: @guide.id).all
@category = Guide.friendly.find(@guide.id).categories.new(category_params)
if @category.save
flash[:success] = "Game category added succesfully!"
redirect_to guide_mod_panel_mod_approval_index_path(@guide)
else
render 'mod_approval/index'
end
end
路线
match '/guides/:guide_id/mod-panel/approve/category' => 'mod_approval#mod_add_category', :via => :post, as: :guide_mod_panel_approve_category
match '/guides/:guide_id/mod-panel/approve' => 'mod_approval#index', :via => :get, as: :guide_mod_panel_mod_approval_index
不太确定它们为什么不呈现 我尝试将 <%= render 'shared/error_messages', object: f.object %>
更改为 <%= render partial: 'shared/error_messages', object: f.object %>
但出现错误
undefined local variable or method `object' for #<#<Class:0x007ffdbcd1c3a8>:0x007ffdbcbdd320>
这一行<% if object.errors.any? %>
此错误渲染设置来自 Michael Hartls rails 教程,正如我所说,我对除此之外的所有其他形式都适用。
原因是当你呈现表单时,你实例化了一个新的类别:
form_for([@guide, Guide.friendly.find(@guide.id).categories.new],
您需要给 form_for
有错误的类别实例(@category
来自您的控制器)。所以我会将您的表格更改为:
form_for([@guide, @category],
然后在你的 #new
方法中确保你设置它:
@category = @guide.categories.build