Rails 4 - 在没有数据库的情况下验证模型 [英] Rails 4 - Validate Model without a database
本文介绍了Rails 4 - 在没有数据库的情况下验证模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我已经按照本教程尽可能地为 Rails 4 建模.
I've followed this tutorial and molding it as best I can for Rails 4.
http://railscasts.com/episodes/219-active-model?language=en&view=asciicast
class Contact
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
validates :name, :email, :phone, :comment, :presence => true
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
private
# Using a private method to encapsulate the permissible parameters is just a good pattern
# since you'll be able to reuse the same permit list between create and update. Also, you
# can specialize this method with per-user checking of permissible attributes.
def contact_params
params.require(:contact).permit(:name, :email, :phone, :comment)
end
end
在我的控制器中:
class ContactController < ApplicationController
def index
@contact = Contact.new
end
def create
@contact = Contact.new(params[:contact])
if @contact.valid?
# Todo send message here.
render action: 'new'
end
end
end
在我看来:
<%= form_for @contact do |f| %>
<%= f.label :name %>:
<%= f.text_field :name %><br />
<%= f.label :email %>:
<%= f.text_field :email %><br />
<%= f.submit %>
<% end %>
<小时>
我收到此异常消息:
I'm getting this exception message:
undefined method `name' for #<Contact:0x007fd6b3bf87e0>
推荐答案
你必须将它们声明为属性.
you have to declare them as attributes.
attr_accessor :name, email, :phone, :comment
attr_accessor :name, email, :phone, :comment
这篇关于Rails 4 - 在没有数据库的情况下验证模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文