我有两个表,在Rails中有HABTM关系.类似于以下内容:
class Foo < ActiveRecord::Base
has_and_belongs_to_many :bars
end
class Bar < ActiveRecord::Base
has_and_belongs_to_many :foos
end
现在我有了一个新Foo对象,并希望为它预先加载数千个条形码,我预先加载了它:
@foo = Foo.create
@bars = Bar.find_all_by_some_attribute(:a)
最快的方法是什么?我试过了:
@foo.bars = @bars
@foo.bars << @bars
Run Code Online (Sandbox Code Playgroud)
两者都运行得很慢,每个条目都有以下条目bar:
bars_foos列(1.1ms)从
bars_foosSQL 显示字段(0.6ms)INSERT INTObars_foos(bar_id,foo_id)VALUES(100,117200)
我查看了ar-extensions,但是import如果没有模型(Model.import),该函数似乎无法工作,因为它不能用于连接表.
我需要编写SQL,还是Rails有更漂亮的方式?
我正在尝试在自定义作业类中获取run_at日期时间.我的代码看起来像这样:
class MyCustomJob < Struct.new(:my_object)
def perform
if self.run_at == my_object.start_time
# process the job
end
end
end
Run Code Online (Sandbox Code Playgroud)
我也试过Delayed::Job.find(self)但没有运气.
提前致谢
我想在Perl中这样做:
>> "foo bar baz".scan /(\w+)/
=> [["foo"], ["bar"], ["baz"]]
Run Code Online (Sandbox Code Playgroud)
有什么建议?
Ruby String上的哈希方法根据字符串的长度和内容返回一个数字:
>> "foo".hash
=> 876516207
Run Code Online (Sandbox Code Playgroud)
Perl中的等价物是什么?
我正在进行元编程任务,我正在尝试使用单个方法在调用类中定义多态关联,同时还定义目标类中的关联.我需要传入调用类的名称才能使关联正确.这是一个应该得到这个想法的片段:
class SomeClass < ActiveRecord::Base
has_many :join_models, :dependent=>:destroy
end
class JoinModel < ActiveRecord::Base
belongs_to :some_class
belongs_to :entity, :polymorphic=>true
end
module Foo
module ClassMethods
def acts_as_entity
has_many :join_models, :as=>:entity, :dependent=>:destroy
has_many :some_classes, :through=>:join_models
klass = self.name.tableize
SomeClass.class_eval "has_many :#{klass}, :through=>:join_models"
end
end
end
Run Code Online (Sandbox Code Playgroud)
我想删除该klass=行,但不知道如何self将调用类的引用传递给class_eval.
有什么建议?
给定一串字符作为输入,不使用正则表达式或模式匹配,如何获取输出,如果字符匹配aaa应输出1,如果字符匹配aBa应输出2.(注意:不应该重新处理字符所以在处理相同的输入时输出"1"和"2")
例如:
给'aaBaBaaaBaaa'它应该输出211
给'aaaBaBaaaaBBaBaBa'它应该输出1212
提前致谢.