【发布时间】:2012-09-10 15:29:11
【问题描述】:
Railscast 描述了如何在 Rails 3 中设置无表模型,如下所示:
class Message
include ActiveModel::Validations
include ActiveModel::Conversion
extend ActiveModel::Naming
attr_accessor :name, :email, :content
validates_presence_of :name
validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i
validates_length_of :content, :maximum => 500
def initialize(attributes = {})
attributes.each do |name, value|
send("#{name}=", value)
end
end
def persisted?
false
end
end
它工作得很好,但它没有让 Rails 知道属性是什么类型。这意味着虽然各种插件/库都可以工作,但它们往往会退回到有效地将属性视为“任何”类型。例如 to_xml 将它们列为“yaml”类型。
有没有办法告诉 Rails 无表模型中属性的类型是什么?
【问题讨论】:
-
我想你可以在stackoverflow.com/questions/7988410/… 中找到一些答案。与您的类似问题。
标签: ruby-on-rails ruby ruby-on-rails-3 activemodel