有一种情况,是这样的c属于b,b属于a,但是我们有时候想建立c属于a的关系,也就是c.a替代原来的c.b.a,那么可以使用through和has_one的结合使用来实现这个.
例如
1)
class A
has_one :b
end
class B
belongs_to :a
has_one :c
end
class C
belongs_to :b
has_one :a, :through => b
end
注意: belongs_to 不能和through一起使用,至于原因,我看了rails官方解释,但是看不懂.
2)
还有一些其他的解决方式,例如delegate也可以解决这个问题
class A
has_one :b
end
class B
belongs_to :a
has_one :c
end
class C
belongs_to :b
delegate :a, :to => :b, :allow_nil => true
end
例如
1)
class A
has_one :b
end
class B
belongs_to :a
has_one :c
end
class C
belongs_to :b
has_one :a, :through => b
end
注意: belongs_to 不能和through一起使用,至于原因,我看了rails官方解释,但是看不懂.
2)
还有一些其他的解决方式,例如delegate也可以解决这个问题
class A
has_one :b
end
class B
belongs_to :a
has_one :c
end
class C
belongs_to :b
delegate :a, :to => :b, :allow_nil => true
end
发表评论
-
rails console 记录命令历史
2020-03-20 10:53 3501: 打开文件: vim ~/.irbrc,添加如下内容: ... -
mysql dyld: Library not loaded: /usr/local/opt/openssl/lib/libssl.1.0.0.dylib
2019-12-16 16:43 435今天一连串的神操作导致连接mysql一直报错,dyld: Li ... -
ruby gsub和sub 的特殊使用
2019-04-04 19:53 1042gsub和sub使用 常用的使 ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4501:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails离线环境搭建相关命令
2018-12-17 09:35 4771:下载yum包: 环境搭建需要安装很多包,可以使用 yumd ... -
rails5 belongs_to 默认不能为空,报错must exist
2017-04-29 16:37 4831: 在config/application.rb设置 con ... -
随笔知识
2014-08-07 21:11 1836show-source: 查看方法在文件中的位置,show-s ... -
rails 中 group 按照一定的规则返回数据
2012-11-03 19:20 972has_many :user_resumes, class_n ... -
项目 经验
2012-10-10 15:53 01: user = User.first; user. ... -
数组使用will_paginate
2012-03-30 11:58 1437有的时候,在开发的过程中需要对模型数组进行分页,此时我们可以如 ... -
我的rails 编程规范
2012-01-16 15:19 8961: 属性中时间要已at结尾,例如created_at, ... -
html_safe
2012-01-12 13:56 1432html_safe: 可以保证(> < &am ... -
同时分页查找没有关联关系的多个表
2011-12-30 14:41 1291supplyinfos和seekinginfos两个表 需求: ... -
send_file ie下文件名乱码问题解决
2011-10-28 17:50 2475使用rails的send_file 实现下载功能时,type指 ... -
counter_cache的使用
2011-10-08 11:55 2732有点惭愧,做rails也2年了,竟然不会用co ... -
has_many 关联关系表单 提交
2011-04-18 17:16 1155class Author has_many :books ... -
rails 根据异常显示特定的错误页面
2011-03-27 20:50 1177rescue_from 异常, :with => :a ... -
rails 笔记
2011-03-27 20:49 1744启动项目: ruby script/se ... -
rails 发送电子邮件(ActionMailer)
2011-03-27 20:49 36361: 复制以下配置邮件 ... -
rails 读写分离
2011-03-27 20:48 2031开发环境下实现rails的 ...
相关推荐
这个插件库添加了 ActiveRecord 模型,一种在保存时检查:belongs_to关联是否实际存在的方法。 这是通过向基本验证模块添加validates_existence_of器来实现的。 它还支持:allow_nil => true/false 、 :allow_new => ...
activemodel-associations, 用于普通 ruby 对象的has_many和belongs_to宏 ActiveModel::Associations 用于普通 ruby 对象的has_many 和 belongs_to 宏。安装将此行添加到你的应用程序的Gemfile中:gem 'activemodel-
管理::字段::属于搜索 一个插件,用于搜索 Rails引擎中的belongs_to关联。用法将其添加到您的Gemfile : gem 'administrate-field-belongs_to_search' 运行捆绑程序以安装: bundle install 将其添加到“管理”仪表...
gem 'belongs_to_hstore' 然后执行: $ bundle 或将其自己安装为: $ gem install belongs_to_hstore 用法 使用hstore列创建关联: class Audit < ActiveRecord :: Base include BelongsToHstore :: ...
Rails提供了四种基本的关联类型:` belongs_to`、` has_one`、` has_many` 和 `has_and_belongs_to_many`。这些关联允许我们建立对象之间的关系,从而在编程时简化数据的存取。 1. `belongs_to` 关联: 这种关联...
通常我们所说的关联关系包括下面三种: ◇ 一对一关联 : ONE_TO_ONE , 包括 HAS_ONE 和 BELONGS_TO ◇ 一对多关联 : ONE_TO_MANY , 包括 HAS_MANY 和 BELONGS_TO ◇ 多对多关联 : MANY_TO_MANY 关联定义 数据表...
本文整理总结了thinkPHP3.x常用的...BELONGS_TO=2 BELONGS_TO 关联定义 HAS_MANY=3 HAS_MANY 关联定义 MANY_TO_MANY=4 MANY_TO_MANY 关联定义 THINK_VERSION 框架版本号 这些预定义常量不会随着环境的变化而变化。 二、
用法class User < ActiveRecord> { activity_type == "Comment" } belong_to :issue , if : -> { activity_type == "Issue" } belong_to :pull_request , if : -> { activity_type == "PullRequest" }end user ....
支持many_to_one / belongs_to,one_to_many / has_many,many_to_many / has_and_belongs_to_many和has_one / one_to_one关联 以不违反外键约束的方式加载灯具的依赖关系图 有一个非常简单的API...
belongs_to :user end has_many和belongs_to其实是Topic类的class method,标准写法是: 代码如下: class Topic < ActiveRecord::Base Topic.has_many(:posts) Topic.belongs_to(:user) end 那么has_...
数据模型设计 1.活动记录模型 用户 包含用户的属性,与“产品”的has_many关联和与“帐户”的... 一个与User的belongs_to关系关联。 has_many与Entries的关联,这是实际的货币交易(请参见下文)。 has_many与Balan
belongs_to :article end 然后,您通常需要将Comment内容反规范化为Post ,反之亦然。 这是在帖子上反规范last_comment_at的标准方法: class Comment < ActiveRecord :: Base belongs_to :article after_...
总之,“belongs-to-one”关系是Laravel中处理一对一关联的核心工具。正确使用它可以极大地提高代码的可读性和效率,使得数据库操作更加简洁和高效。通过深入理解和熟练运用这一特性,开发者能够更好地构建基于...
在Laravel框架中,"belongs-to-through"是一种高级关系,它允许我们定义两个模型之间的间接关系,通过一个中间模型。这种关系在处理复杂的数据关联时非常有用,特别是当我们需要通过第三个模型来连接两个模型时。...
在这个例子中,`Post`与`User`的关系是`BELONGS_TO`,通过`Post`的`author_id`字段与`User`关联。这里的`VarName`是`author`,表示一个用户对象。 2. **User.php** ```php class User extends CActiveRecord { ...
偏好 has_many :through 胜于 has_and_belongs_to_many。 使用 has_many :through 允许在 join 模型有附加的属性及验证 # 使用 has_and_belongs_to_many class User < ActiveRecord::Base has_and_...
ApplicationRecord belongs_to :user has_many :commentsendclass User < ApplicationRecordhas_many :postshas_many :commentsendclass Comment < ApplicationRecord belongs_to :user belongs_to :postend...
创建has_many和belongs_to关联。 通过控制台和db/seeds.rb构建关联的数据。 使用关联提供的方法查询关联数据。 将关联数据嵌入视图中。 遍历显示单个实例的视图内的关联数据。博客类别在本课程中,我们将设置一个...
创建has_many和belongs_to关联。 通过控制台和db/seeds.rb构建关联的数据。 使用关联提供的方法查询关联数据。 将关联数据嵌入视图中。 遍历显示单个实例的视图内的关联数据。博客类别在本课程中,我们将设置一个...