为了账号安全,请及时绑定邮箱和手机立即绑定

没有数据库的Rails模型

/ 猿问

没有数据库的Rails模型

拉丁的传说 2019-12-20 10:13:26

我想创建一个带有ActiveRecord验证的Rails(2.1和2.2)模型,但是没有数据库表。什么是最广泛使用的方法?我找到了一些声称可以提供此功能的插件,但是其中许多插件似乎并未得到广泛使用或维护。社区推荐我做什么?现在,我倾向于根据此博客文章提出自己的解决方案。


查看完整描述

3 回答

?
慕后森

我认为您链接的博客文章是最好的方法。我只建议将残存的方法移到模块中,以免污染您的代码。


查看完整回答
反对 2019-12-20
?
开满天机

在Rails 3中,有更好的方法可以做到这一点:http : //railscasts.com/episodes/219-active-model


查看完整回答
反对 2019-12-20
?
慕田峪7331174

这是我过去使用的一种方法:


在app / models / tableless.rb中


class Tableless < 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


  # Override the save method to prevent exceptions.

  def save(validate = true)

    validate ? valid? : true

  end

end

在app / models / foo.rb中


class Foo < Tableless

  column :bar, :string  

  validates_presence_of :bar

end

在脚本/控制台中


Loading development environment (Rails 2.2.2)

>> foo = Foo.new

=> #<Foo bar: nil>

>> foo.valid?

=> false

>> foo.errors

=> #<ActiveRecord::Errors:0x235b270 @errors={"bar"=>["can't be blank"]}, @base=#<Foo bar: nil>>


查看完整回答
反对 2019-12-20

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信