Joã*_*iel 66 ruby activerecord ruby-on-rails
想象一下以下情况:
我有一个dog模型和一个house模型.狗可以属于房子,房子可以有很多狗,所以:
Class Dog <  ActiveRecord::Base
  belongs_to :house
end
Class House < ActiveRecord::Base
  has_many :dogs
end
现在,想象一下,我也想创造没有房子的狗.他们不属于房子.我是否仍然可以使用该关系结构,并且只是:house_id在创建它时不通知?
有更好的做法吗?
Obs.:我用这个类比来简化我的问题,但我的真实情况是:我有一个模型,用户可以生成它的实例.他还可以创建这些实例的集合,但是他可以将一个实例留在集合之外.
小智 303
在Rails 5中要小心这个......
belongs_to默认是必需的
从现在开始,每个Rails应用程序都将有一个新的配置选项config.active_record.belongs_to_required_by_default = true,当尝试保存不存在belongs_to关联的模型时,它将触发验证错误.
config.active_record.belongs_to_required_by_default可以更改为false并保持旧的Rails行为,或者我们可以在每个belongs_to定义上禁用此验证,只需传递一个可选的附加选项:true,如下所示:
Run Code Online (Sandbox Code Playgroud)class Book < ActiveRecord::Base belongs_to :author, optional: true end
来自:http://blog.michelada.io/whats-new-in-rails-5
| 归档时间: | 
 | 
| 查看次数: | 21536 次 | 
| 最近记录: |