gpt4 book ai didi

ActiveRecord::Base 无表

转载 作者:行者123 更新时间:2023-12-03 11:30:59 25 4
gpt4 key购买 nike

这一点之前就出现了( rails model attributes without corresponding column in db ),但看起来提到的 Rails 插件没有维护( http://agilewebdevelopment.com/plugins/activerecord_base_without_table )。有没有办法按原样使用 ActiveRecord 来做到这一点?

如果没有,有没有办法在不使用 ActiveRecord 的情况下获取 ActiveRecord 验证规则?

当然,ActiveRecord 希望该表存在。

最佳答案

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

应用程序/模型/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

应用程序/模型/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>>

关于ActiveRecord::Base 无表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/937429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com