Ruby on rails 为什么Rails验证不起作用?
我将按照以下步骤创建一个非常普通的验证。我创建了一个工作正常的回调,但是Ruby on rails 为什么Rails验证不起作用?,ruby-on-rails,validation,activerecord,ruby-on-rails-3.2,Ruby On Rails,Validation,Activerecord,Ruby On Rails 3.2,我将按照以下步骤创建一个非常普通的验证。我创建了一个工作正常的回调,但是 class Group < ActiveRecord::Base include ActiveModel::ForbiddenAttributesProtection validates :name, :presence => true end 使用validates\u presence\u of:name进行踢腿,尝试validates\u presence\u of:name。还有,这就是你
class Group < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
validates :name, :presence => true
end
使用
validates\u presence\u of:name
进行踢腿,尝试validates\u presence\u of:name
。还有,这就是你模型的全部代码吗?您的attr\u可访问
/attr\u受保护
属性在哪里?谢谢。我使用的是强参数,因此没有模型级白名单/黑名单。控制器管理允许的参数。啊,没有想到这一点。很高兴它对你有用。为了清楚起见,我把我的评论移到了一个答案上。为什么会这样呢?Rails 3.2约定是OP已经拥有的。这很有效,谢谢。我使用的是强参数,因此没有模型级白名单/黑名单。控制器管理允许的参数RyanWI和SSCIRUS在一起,不知道为什么3.2协议不起作用。但是,继续下去验证了存在@jason328你是说它与attr_可访问/受保护相关?我创建了一个新的、普通的rails应用程序来使用它,但仍然有相同的错误。
undefined method ` validates' for #<Class:0x007fa57b1a9e60>
gem 'rails', '3.2.13'
gem 'pg'
group :assets do
gem 'sass-rails'
gem 'uglifier'
end
gem 'jquery-rails'
gem 'strong_parameters'
gem 'bootstrap-sass', '>= 2.3.0.0'
gem 'devise', '>= 2.2.3'
gem 'cancan', '>= 1.6.9'
gem 'omniauth'
gem 'omniauth-facebook'
gem 'paperclip', '~> 3.0'
gem 'friendly_id', "~> 4.0.9"
group :test, :development do
gem 'rspec-rails'
gem 'factory_girl_rails'
end