NoMethodError undefined方法`assert_valid_keys'用于Proc

时间:2018-04-07 03:19:12

标签: ruby-on-rails-5

好的,将大型代码库从Rails 4移植到5:

json.loads ()

并收到此错误:

  

来自应用程序的消息:未知密钥::订单。有效密钥是:   :class_name,:anonymous_class,:foreign_key,:validate,:autosave,   :table_name,:before_add,:after_add,:before_remove,:after_remove,   :extend,:primary_key,:dependent,:as,:through,:source,   :source_type,:inverse_of,:counter_cache,:join_table,:foreign_type,   :index_errors(ArgumentError)

我最终发现人们正在将这些内容放入这种lambda文字格式中:

has_many :interactive_items, :dependent => :destroy, :order => 'id ASC'

然后我收到了这个错误:

  

来自应用程序的消息:未定义的方法`assert_valid_keys'用于#< Proc:0x000000059c40a0> (NoMethodError)

..我无法在任何地方找到assert_valid_keys。

1 个答案:

答案 0 :(得分:0)

原来我对lambda文字走得太远了,应该只为'order'而不是'依赖'来做:

has_many :interactive_items, -> { dependent('destroy') }, -> { order('id ASC') }

这有效,但我不确定原因。