【发布时间】:2015-03-10 17:59:29
【问题描述】:
在 rails 4.0.5 中,我设置了一个无表模型。所以我有一个接受信息的表格,但是当我尝试验证信息时它确实有效。即使该字段已填写,验证也会在所有字段上返回“不能为空白”。我做错了什么。
表格
= form_for @bank do |f|
= f.text_field :first_name
= f.text_field :account
= f.text_field :routing
= f.text_field :zip
%button{:type => "submit"} Submit
控制器
class BanksController < ApplicationController
def new
@bank = Bank.new
end
def create
@bank = Bank.new(params[bank_params])
if @bank.valid?
# etc....
end
end
模型
class Bank < ActiveRecord::Base
def self.columns() @columns ||= []; end
def self.column(name, sql_type = nil, default = nil, null = true)
columns << ActiveRecord::ConnectionAdapters::Column.new(name.to_s, default, sql_type.to_s, null)
end
column :first_name, :string
column :account, :int
column :routing, :int
column :zip, :int
VALID_NUM_REGEX = /\A[+-]?\d+\z/
validates :first_name, presence: true
validates :account, presence: true, format: { with: VALID_NUM_REGEX }, length: { minimum: 4 }
validates :routing, presence: true, format: { with: VALID_NUM_REGEX }, length: { minimum: 4 }
end
控制台
Started POST "/banks" for 127.0.0.1 at 2015-03-09 11:39:40 -0400
Processing by BanksController#create as HTML
Parameters: {"utf8"=>"✓","authenticity_token"=>"..=","bank"=>{"first_name"=>"Alain", "account"=>"1234", "routing"=>"4321","zip"=>"11413"}}
【问题讨论】:
标签: ruby validation ruby-on-rails-4 activerecord model