假设我在Rails中与使用STI的表有关系,例如:classVehicle...我想在一个查询中加载一个人及其所有汽车和卡车。这不起作用:#Generatesthreequeriesp=Person.includes([:cars,trucks]).first...这很接近,但这里没有运气:#Preloadsvehiclesinonequeryp=Person.includes(:vehicles).first#andthishasthecorrectclass(CarorTruck)p.vehicles.first#butthisstillrunsanotherqueryp.cars
我有一个名为Buyable的基于STI的模型,它有两个模型Basket和Item。这里关注的Buyable属性是:shop_week_idlocation_idparent_idBasket和Item之间存在父子关系。对于篮子,parent_id始终为nil,但是通过引用唯一的篮子ID,一个项目可以属于一个篮子。所以篮子里有_很多元素,一个元素属于_一个篮子。我需要一个关于篮子模型的方法:如果表中有任何其他篮子具有相同数量和类型的项目,则返回true或false。当商品共享相同的shop_week_id和location_id时,它们被认为是同一类型。例如:给定一个篮子(uid=7),
刚切换到LinuxMint(以前的顽固Windows用户)。我在尝试安装TeXstudio时遇到了一些问题。Sudoapt-getinstalltexstudio给我一个正确的安装(至少,我是这么想的),但是当我尝试构建时,我得到以下错误:File`url.sty'notfound.\let一些谷歌搜索无法进一步帮助我,你们能帮我解决这个问题吗? 最佳答案 对于最终来到这里的人,我犯了初学者的错误,即我的电脑上没有LaTeX的编译器。这解决了问题:apt-getinstalltexlive
我有两个使用people表的模型:Person和Person::Employee(继承自Person)。people表有一个type列。还有另一种模型,Group,它有一个名为:owner的多态关联。groups表有一个owner_id列和一个owner_type列。app/models/person.rb:classPersonapp/models/person/employee.rb:classPerson::Employeeapp/models/group.rb:classGroup问题是,当我使用以下代码创建Person::Employee时,owner_type列设置为不正确
我正在尝试制作一个STIBase模型,它会自动更改为这样的继承类:#models/source/base.rbclassSource::Base我想要这样的行为:s=Source::Base.new(:url=>'http://stackoverflow.com/rss')s.get_content#=>GotcontentfromRSSs2=Source::Base.first#urlisalsoendingrsss2.get_content#=>GotcontentfromRSS 最佳答案 有(至少)三种方法可以做到这一点:1。
我正在尝试查找关于照片的10条最新评论,以便将它们集成到我的Rails3.0.3应用程序的事件提要中。我有一个Photo模型,它使用单表继承从Upload模型继承:classUpload:commentable...end多态关联commentable在Comment模型中描述:classCommenttrueend到目前为止还不错吧?当我尝试构建查询时,问题就来了。经过反复试验,我想出了位于照片模型中的这段代码:defself.latest_comments(count=10)Comment.where(:commentable_type=>"Upload")\.joins("INN
classUser如何将变量u类型转换为Consumer类型? 最佳答案 我找到了这个问题的答案。ActiveRecord::Base类有一个用于此目的的方法:http://api.rubyonrails.org/classes/ActiveRecord/Base.html#M002334代码将是u=User.find(id)u=u.becomes(u.type.constantize) 关于ruby-on-rails-单表继承(STI)场景中的类型转换基类模型,我们在StackOver
我使用STI模式实现类层次结构classAscope:aaa,where([someField]:[someValue])endclassB问题是当我尝试调用类似的东西时:B.limit(5).aaa=>SELECT"[table]".*FROM"[table]"WHERE"[table]"."type"IN('A')AND([someField]=[someValue])LIMIT5所以我得到5个类型A的对象,它满足范围:aaa但是我需要对type="B"的行做同样的事情有没有什么方法可以使用父级的作用域,而无需在STI模式的子级中重新定义它?提前致谢已编辑我刚刚和我的friend讨