我希望能够动态创建从 ActiveRecord 继承的类,用于在 Rails 应用程序之外编写脚本。
我被困在这样的事情上:
require 'active_record'
def create_arec(table_name)
Class.new ActiveRecord::Base do
self.table_name = table_name
yield
end
end
Band = create_arec 'bands' do
scope :only_rock, -> {where genre: 'rock'}
end
rock_bands = Band.only_rock #undefined method `only_rock'
Run Code Online (Sandbox Code Playgroud)
我如何使它起作用,或者有人可以告诉我更好的方法吗?
搞定了:
def create_arec(table_name, &block)
klass = Class.new(ActiveRecord::Base){self.table_name = table_name}
klass.class_eval &block
klass
end
Run Code Online (Sandbox Code Playgroud)
谢谢@phoet
| 归档时间: |
|
| 查看次数: |
1513 次 |
| 最近记录: |