2012-06-07 35 views
2

我有控制器通过这两个作用:Rails 3 - 如何验证没有数据库的模型?

resources :home do 
    collection do 
     get 'index' 
     get 'contact'  
    end 
    end 

和模型:

class Home 
    include ActiveModel::Validations 
    include ActiveModel::Conversion 
    extend ActiveModel::Naming 

    attr_accessor :name, :message 

    validates :name, :presence => {:message => 'Name cannot be blank.'}, :allow_blank => true, :length => {:minimum => 2, :maximum => 40} 
    validates :message, :presence => {:message => 'Message cannot be blank.'}, :allow_blank => true, :length => {:minimum => 10} 

    def initialize(attributes = {}) 
     attributes.each do |name, value| 
     send("#{name}=", value) 
     end 
    end 

    def persisted? 
     false 
    end 
end 

控制器:

class HomeController < ApplicationController 
    def index 
    end 

    def contact 
    @home = Home.new 
    end 
end 

和表单(/视图/ home/contact.html.erb

<%= form_for(@home, :validate => true) do |f| %> 
    <% if @home.errors.any? %> 
     <div id="error_explanation"> 
     <h2><%= pluralize(@home.errors.count, "error") %> prohibited this role from being saved:</h2> 
      <ul> 
     <% @home.errors.full_messages.each do |msg| %> 
      <li><%= msg %></li> 
     <% end %> 
     </ul> 
     </div> 
    <% end %> 

    <div class="field"> 
     <%= f.label :name %><br /> 
     <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
     <%= f.label :message %><br /> 
     <%= f.text_field :message %> 
    </div> 
    <div class="actions"> 
     <%= f.submit %> 
    </div> 
<% end %> 

我想验证形式的情况下,如果模型具有数据库表,但不幸的是我有与本案没有经验,我有没有数据库表的模型,并且需要验证形式...我仍然得到错误

undefined method `to_key' for nil:NilClass 

任何人都可以帮助我,请,如何使它工作?

谢谢

+0

这将发布创建操作,但不显示它。 –

回答