在ruby中,你有一个名为“type”的属性,它是对象的类。 Rails将其存储在名为type的列中的数据库中。所以,如果我有几个博客“类型”,我可以做这样的事情
def create
@blog = Blog.new(params[:blog])
@blog[:type] = params[:blog][:type]
# ...
end
如果我添加这样的人,然后加载它,并询问它的类(例如,在控制台),我会回答正确的类名。
但是,当我之后保存它时,rails将仅运行超类验证器,而不是我在子类中定义的验证器。
我应该如何让rails运行子类验证器?
答案 0 :(得分:0)
class Blog < ActiveRecord::Base
belongs_to :type
validates_associated :type
# you might also be interested in:
# accepts_nested_attributes_for :type
end
class BlogsController < ApplicationController
def create
@blog = Blog.new(params[:blog])
if @blog.save
# ...
end
end
end