草庐IT

ruby-on-rails - ActiveAdmin单表继承公共(public)属性表单重写

我正在使用ActiveAdmin,并且我有一个使用单表继承的项目。我的问题很简单:我的模型的公共(public)部分的形式是否可以只写一次,或者我每次都被迫重写? 最佳答案 您可以使用ruby​​的#to_proc和将proc转换为block的技巧。这是我利用它的解决方案。它允许正常代码重新加载,不扩展/猴子修补任何现有模块,并允许自定义管理定义。在此示例中,Animal是基础STI类,Dog和Cat继承自它。将以下代码放入app/admin/animal.rb:classAnimalAdminConfigattr_reader:o

ruby - 您如何处理 SimpleForm 中的单表继承,以便单个助手处理所有模型?

我们有一个模型“EventSession”,它通过STI具有多个子类型,包括“NetworkingEventSession”和“DiningEventSession”……在某些情况下,我们希望能够从一个Controller和一个View处理所有这些,但很简单form在simple_form_for@session中迭代时正在查看对象,并尝试使用我们目前尚未定义的networking_event_session_path帮助程序,而不是常规的event_session_helper路径,这可以正常工作,这正是我们想要的。我可以定义新的路由来为每个子类型获取助手,所有这些都指向相同的路径,

ruby-on-rails - 单表继承查找问题

我有以下3个rails类,它们都存储在一个表中,使用rails的单表继承。classTemplate如果我有一个ID为150的StockThingTemplate,那么逻辑上我应该能够这样做:ThingTemplate.find(150)=>#returnsmetheStockThingTemplate事实上,这有效,有时当它工作时,它会生成以下SQL查询:SELECT*FROMtemplatesWHERE(templates.`id`=159)AND((templates.`type`='ThingTemplate')OR(templates.`type`='StockThingTe

ruby-on-rails - 使用具有单表继承的 accepts_nested_attributes_for

我有一个模型Post哪个belongs_to一Section.有两个不同的Section子类,我使用STI为每个子类实现不同的行为。在Post我希望每个Section都有一个选项卡.该选项卡将允许用户A)从现有的Section中选择使用或B)让用户创建一个新的Section.我想知道如何使用accepts_nested_attributes_for和fields_for或者完成此操作所需的任何东西TheRailsWay。非常感谢任何建议。谢谢。 最佳答案 假设标签对应两个子类classPost#thetwosubclasses.Ea

ruby-on-rails - Rails 3.2.11 中模型子目录的单表继承

我有一个模型Sport。使用单表继承,我有2个其他模型,Cricket和Football这样classCricket我将这两个模型放在名为sports的模型目录中的子文件夹中。我将类型列添加到Sport并将值设置为Cricket或Football,任何合适的值。此外,我还能够使用Cricket.new或Football.new创建对象。此结构在Rails3.2.6之前工作正常。但是现在使用Rails3.2.11,子文件夹中的任何模型文件都必须模块化。所以,现在看起来像这样:moduleSportsclassCricket现在,rails无法单独加载类Cricket或Football。因

ruby-on-rails - 使用单表继承处理表单

我的个人资料编辑View中有一个以这一行开头的表单:{:multipart=>true}do|f|%>Profile进行单表继承,两个子类Profile::Artist和Profile::Listener。当我尝试访问配置文件的编辑View时,出现此错误:NoMethodErrorinProfiles#editShowing/rubyprograms/dreamstill/app/views/profiles/edit.html.erbwhereline#1raised:undefinedmethod`profile_artist_path'for#:0x1033560c0>第1行是我

ruby - Ruby on Rails 3.0 中的单表继承和路由

我在使用RubyonRails应用程序中的单表继承进行路由时遇到了一些问题。我正在使用Ruby1.9.2和Rails3.0.6。这是在开发中,所以后端是SQLite3,以防万一。假设我有两个产品,widgets和sprockets。我的应用程序跟踪这两种产品的错误编号和支持案例票,但错误和支持票本身存储在其他系统中。有两个独立的团队负责这两种产品。我已经为两种类型的错误记录实现了单表继承,因为小部件错误号和链轮错误号的验证规则不同(两个团队使用不同的错误跟踪系统)并且有可能我将不得不向应用程序添加更多行为截然不同的产品。使用STI使我能够根据需要灵活地实现其他方法和属性。widgets

ruby-on-rails - Tire/ElasticSearch 单表继承支持

CrosspostfromGitHub:我的应用程序在各种第3方服务(如Delicious、Twitter)中搜索链接……我有以下基类:classLinkincludeMongoid::DocumentincludeTire::Model::SearchincludeTire::Model::Callbacksfield:href,type:Stringfield:name,type:Stringmappingdoindexes:href,type:'string',analyzer:'url'indexes:name,type:'string',analyzer:'keyword',

ruby-on-rails - Ruby on Rails 3 单表继承还是多表继承?

我正在开发RubyonRails3应用程序。我已经基于Devise和Cancan实现了身份验证和授权。在此范围内,我实现了至少可以具有2个不同角色的“成员”对象——“用户”和“公司”。实际上,我想将这些角色表示为Member的两个派生类,例如User和Company。我应该使用单表继承还是多表继承。如果是多表继承,我应该使用什么插件? 最佳答案 我知道这不是您问题的答案,但我认为您应该重新考虑使用继承以外的其他方法。继承是一种很棒的OO机制,但经常被过度使用。大多数情况下,您可以通过协会和某种形式做得更好StrategyPatter

ruby-on-rails - 单表继承在 Rails 4 应用程序中不起作用 - ActiveRecord::SubclassNotFound:单表继承机制失败

我有一个新的Rails4应用程序,我在STI配置中创建了一些模型。主要模型称为Order,它继承自ActiveRecord::Base。这是它的样子:classOrder{where(type:'remote')}scope:locals,->{where(type:'local')}end另外两个模型位于models/orders的文件夹中,它们分别称为Remote和Local,它们都继承自顺序订单迁移文件如下所示:defchangecreate_table:ordersdo|t|t.string:source_url,null:falset.string:final_url,nul