如何通过Rails中的关联获取详细信息?

康纳

我有四个模型。位置,路径,要素和要素类型。但是我正在努力建立一些协会。

  • 要素具有一个位置和一种要素类型
  • 路径有2个位置,从到

从功能我可以运行

  • Feature.first.location-并获取其适用的位置
  • Feature.featuretype-并获取与之相关的要素类型。

从Featuretype我可以运行

  • Featuretype.first.features-并返回使用此功能类型的所有功能。

从位置我可以跑步

  • Location.first.features-并返回链接到该位置的所有功能。

我希望能够跑步

  • Location.first.paths-并返回使用该位置的所有路径。
  • Path.first.locations-并返回路径中的两个位置。

任何帮助,将不胜感激。

class Location < ActiveRecord::Base
    has_many :features
end

class Path < ActiveRecord::Base
    belongs_to :LocationFrom, class_name: 'Location', foreign_key: 'from'
    belongs_to :LocationTo, class_name: 'Location', foreign_key: 'to'
end

class Feature < ActiveRecord::Base
    belongs_to :featuretype
    belongs_to :location
end

class Featuretype < ActiveRecord::Base
    has_many :feature 
end

这是我的数据库模式,如果有帮助

ActiveRecord::Schema.define(version: 20160813164514) do

  create_table "features", force: :cascade do |t|
    t.integer  "featuretype_id"
    t.string   "featurename"
    t.string   "featuredescription"
    t.datetime "created_at",         null: false
    t.datetime "updated_at",         null: false
    t.integer  "location_id"
  end

  create_table "featuretypes", force: :cascade do |t|
    t.string   "name"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
  end

  create_table "locations", force: :cascade do |t|
    t.string   "name"
    t.text     "description"
    t.string   "latitude"
    t.string   "longitude"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
  end

  create_table "paths", force: :cascade do |t|
    t.integer  "from"
    t.integer  "to"
    t.integer  "distance"
    t.datetime "created_at", null: false
    t.datetime "updated_at", null: false
    t.boolean  "directed"
  end

end
和安德烈森
class Featuretype < ActiveRecord::Base
  has_many :feature # Should be :features, (notice the pluralization)
end

重命名关系。命名约定是蛇案。

class Path < ActiveRecord::Base
  belongs_to :location_from, class_name: 'Location', foreign_key: 'from'
  belongs_to :location_to, class_name: 'Location', foreign_key: 'to'
end

Location创建查询Path所需行的方法时

def paths
  Path.where "from = :id OR to = :id", id: id
end

Path创建一个将两个位置都作为数组返回的方法中

def locations
  [location_from, location_to]
end

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从详细信息页面Angular 9中的单个对象(本地JSON)获取详细信息

如何获取Windows文件详细信息?

如何从API获取版本详细信息

如何获取WooCommerce订单详细信息

如何从PyYAML异常获取详细信息?

如何获取推文的详细信息?

如何获取异常详细信息

如何在Swift中获取硬件详细信息?

如何在Django中获取超级用户详细信息?

如何在Jenkinfile中获取项目类型详细信息?

在SQL中,如何透视表并获取详细信息?

如何在.net中获取ForeignSecurityPrincipal对象的详细信息

如何从Expressjs中的请求中获取Cookie详细信息?

如何通过Office365 API获取许可证详细信息?

保持贝宝付款时如何通过邮件获取订单详细信息?

如何通过Ansible模块获取Azure订阅详细信息?

如何在Infusionsoft中通过订单ID获取订单详细信息

如何在Android中获取“当前周”详细信息以及“季度详细信息”?

未在jsp中获取详细信息

如何从Datomic的“事务”中获取详细信息/错误消息

ActiveRecord获取所有+关联的详细信息

通过RadGridView,如何显示详细信息?

如何使用Rails获取请求URL详细信息

如何获取Facebook Post详细信息?

如何获取轮班活动FullCalendar中约会的详细信息

如何在TFS中获取构建详细信息

如何获取Java文件的“详细信息”

如何通过fn_dblog()函数获取回滚操作详细信息?

如何通过 Powershell 获取 YouTube 视频详细信息(标题、作者、时长等)?

TOP 榜单

热门标签

归档