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