Rails-通过关联将has_many =>的名称作为字符串获取

约翰·密茨

我有三种模式

class Mar < ActiveRecord::Base
  belongs_to :baz
  belongs_to :koo
end

class Baz < ActiveRecord::Base
  has_many :other_mars, :class_name => "Mar", :foreign_key => :b
end

class Koo < ActiveRecord::Base
  has_many :mars
  has_many :bazs, :through => :mars, :source => :baz
end

然后从模型Baz中获取has_many名称作为字符串。在此示例中为“ other_mars”

该解决方案必须使用传递给它的class_name来处理任何类似的has_many关系。

我正在使用Rails 3.2和ruby 1.9

文卡特

如果我正确理解您的要求,则以下代码会有所帮助

result = Baz.reflect_on_all_associations.collect do |association|
  association.name.to_s if association.options[:class_name].present?
end.compact

您的情况是上面的代码['other_mars']即它返回所有已associations声明的:class_name密钥。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

has_many的Rails触摸链:通过关联

Rails has_many通过关联继承问题

Rails 4:has_many的路由:通过关联

rails has_many:通过关联不起作用

Rails has_many 通过关联问题

Rails has_many 通过关联删除路径

Rails 通过关联查询 has_many

Rails通过关联删除has_many

Rails 4:结合has_many:通过关联与多态关联

Rails 4活动记录模型has_many通过关联吗?

Rails 4 + Pundit:在has_many中加入模型授权:通过关联

Rails 5通过关联模型更新has_many

如何通过关联对Rails has_many使用单个选择下拉列表?

Rails:创建不通过关联保存has_many的操作-“回滚事务”

如何通过has_many通过关联获取嵌套记录?

MongoDB 将字段名称作为字符串插入,而不是获取值

是否可以将接口名称作为字符串获取?

Rails-如何通过has_many关联获取所有(唯一)数据?

通过名称作为字符串访问Java变量

无法通过名称作为字符串访问对象

将列名称作为字符串传递给with

将按钮名称作为字符串传递

在has_many中通过关联使用class_name时,Rails自定义ActiveRecord :: Type失败

Rails 4-通过关联预加载has_many失败,并且穿透表的lambda条件

通过关联和嵌套模型形式使用has_many选择rails4集合

升级到 rails 5 后通过关联在 has_many 中出现未知列错误

从Rails中的ngResource获取has_many关联

通过关联使用has_many创建时会获取NoMethodError(nil:NilClass的未定义方法“名称”)

通过Rails对象查询has_many以获取属性