simple_form错误通知不使用zurb基础显示

时间:2013-07-05 23:03:01

标签: ruby-on-rails-3.2 simple-form zurb-foundation

我正在使用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 %>? 我如何到达那里以显示错误?

2 个答案:

答案 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之后在每个表单输入旁边呈现它们。