我尝试使用documentation中描述的:readonly key
:
belongs_to :project, readonly: true
这是我的模型关联代码定义:
class Article < ActiveRecord::Base
belongs_to :feed, inverse_of: :articles, readonly: true
end
class Feed < ActiveRecord::Base
has_many :articles, inverse_of: :feed, dependent: :delete_all
end
这两个片段看起来很相似。
但是当我在rails console
中测试我的模型时,它不起作用:
irb(main):001:0> article = Article.first()
ArgumentError: Unknown key: :readonly. Valid keys are: :class_name, :class, :foreign_key, :validate, :autosave, :remote, :dependent, :primary_key, :inverse_of, :foreign_type, :polymorphic, :touch, :counter_cache
我有Rails v.4.2.0,如果这很重要。
我做错了什么? 为什么Rails不解释这个论点?
谢谢。
答案 0 :(得分:1)
文档已过期。最新的等价物是
User.belongs_to :feed, -> {readonly}, inverse_of: articles
lambda用于构建范围。您可以在关系中使用的任何内容,包括readonly
,都可以在这里找到。
答案 1 :(得分:0)
在导轨4.1.2中删除了readonly
的这种用法。你将不得不使用readonly方法
例如:
user = User.joins(:todos).select("users.*, todos.title as todos_title").readonly(true).first
user.todos_title = 'clean pet'
user.save! # will raise error
在此changelog中搜索“4.1”
中的“readonly”