我正在使用Zurb Foundation和Simple form
<%= simple_form_for @complaint do |f| %>
<%= f.error_notification %>
<%= f.association :company, as: :radio, label: false %>
<%= f.input :country, priority: ["United States"] %>
<%= f.input :city %>
<%= f.input :client, placeholder: 'Coca-Cola' %>
<%= f.input :body %>
<%= f.button :submit %>
<% end %>
在我的模特中:
class Complaint < ActiveRecord::Base
belongs_to :company
attr_accessible :body, :city, :client, :country, :company_id
validates :company, presence: { message: 'Company cannot be blank!' }
validates :body, presence: true
validates :country, presence: true
validates :city, presence: true
end
当我在空白表单上点击提交时,我预计会有错误说“公司不能空白!”等
我是否错误地使用<%= f.error_notification %>
?
我如何到达那里以显示错误?
答案 0 :(得分:0)
不要逐字逐句,因为我自己只有几个月才进入rails,但我认为error_notification并不是为了显示错误: - 错误本身应该与组件一起显示。但是,我有一个使用f.input_field的情况,f.error字段旁边的组件是凌乱的所以我想在页面顶部的所有错误,所以我创建了一个简单的部分:
-if object.errors.any?
.alert{:class => "alert-error"}
%p= "Please correct the following #{pluralize(object.errors.count, 'error')}:"
%ul
- object.errors.full_messages.each do |msg|
%li= msg
并将其呈现在页面顶部:
= render "layouts/errors", :object => @booking
对不起,哈哈。
.alert{:class => "alert-error"}
将其设置为与通知相同的样式。
答案 1 :(得分:0)
您能否请出示您的控制器CREATE操作代码。我有类似的错误,问题就在那里。
您可能使用过@ complaint.save!而不仅仅是@ complaint.save
你应该调用save而不是save!所以if语句可能会失败,你的对象将在其errors对象中包含消息,而simple_form可以在render:new之后在每个表单输入旁边呈现它们。