:belongs_to方法的readonly键不起作用

时间:2014-12-30 22:01:08

标签: ruby-on-rails ruby

我尝试使用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不解释这个论点?

谢谢。

2 个答案:

答案 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”
相关问题