未定义的局部变量或方法`simple&#39;对于#&lt;#<class:0xb4ec5284>:0xb44fae84&gt;

时间:2016-04-10 00:31:47

标签: ruby-on-rails rubygems

请我是Ruby on Rails的新手,也是stackoverflow的新手。我正在使用simple_form gem创建一个联系表单,访问者将在其中注册简报。 我有一个Contact模型和new.html.erb视图文件。问题是当我导航到Contact链接时,我得到以下错误消息   &#34;未定义的局部变量或方法`simple&#39;对于#&lt;#:0xb44fae84&gt; &#34;请问我做错了什么?

注意:我使用的是Rails 4.2.6和ruby 2.2.1 谢谢。

联系人模型位于app / models / contact.rb中,如下所示。

class Contact < ActiveRecord::Base

has_no_table

column :name, :string
column :email, :string
column :content, :string

validates_presence_of :name
validates_presence_of :email
validates_presence_of :content
validates_format_of :email,
  :with => /\A[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}\z/i
validates_length_of :content, :maximum => 500


end

,app / views / contacts / new.html.erb中的视图文件如下所示:

<% content_for :title do %>Contact<% end %>
<h3>Contact</h3>
<div class="form">
<%= simple_form_for @contact do |form| %>
<%= simple.error_notification %>
<%= form.input :name, autofocus: true %>
<%= form.input :email %>
<%= form.input :content, as: :text %> 
<%= form.button :submit, 'Submit', class: 'submit' %>
<% end %>   
</div>

1 个答案:

答案 0 :(得分:0)

simple不是一个定义的方法,就像错误所说的那样。

在表单中使用简单表单的错误通知方法:

= f.error_notification

或者,为了更好地进行自定义,请添加自己的帮助程序部分以呈现错误(在此示例中我使用了瘦模板引擎):

<强> _form_errors.html.slim:

- if resource.errors.any?
  #error_explanation
    .alert.alert-error
      h2.error-header Please fix the following #{resource.errors.count} errors
      ul
        - resource.errors.full_messages.each do |msg|
          li= "* #{msg}"

以您的形式

= render "partials/form_error", resource: @contact