kik*_*lue 3 ruby ruby-on-rails ruby-on-rails-4.1
这个类分配的代码在rails v4.0.5之前是可以的,但它从rails 4.1.x发出错误
有一个api文档,所以我猜它没有被弃用.
我不知道这是什么问题.
Loading development environment (Rails 4.1.1)
2.1.1 :001 > class Assignment < ActiveRecord::Base
2.1.1 :002?> belongs_to :group
2.1.1 :003?> has_one :event
2.1.1 :004?> accepts_nested_attributes_for :event
2.1.1 :005?> end
NameError: undefined local variable or method `generated_feature_methods' for #<Class:0x0000010a262e28>
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/activerecord-4.1.1/lib/active_record/dynamic_matchers.rb:26:in `method_missing'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/protected_attributes-1.0.5/lib/active_record/mass_assignment_security/nested_attributes.rb:30:in `block in accepts_nested_attributes_for'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/protected_attributes-1.0.5/lib/active_record/mass_assignment_security/nested_attributes.rb:16:in `each'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/protected_attributes-1.0.5/lib/active_record/mass_assignment_security/nested_attributes.rb:16:in `accepts_nested_attributes_for'
from (irb):4:in `<class:Assignment>'
from (irb):1
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/railties-4.1.1/lib/rails/commands/console.rb:90:in `start'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/railties-4.1.1/lib/rails/commands/console.rb:9:in `start'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:69:in `console'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/railties-4.1.1/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
from /Users/me/.rvm/gems/ruby-2.1.1@xxx/gems/railties-4.1.1/lib/rails/commands.rb:17:in `<top (required)>'
from bin/rails:4:in `require'
from bin/rails:4:in `<main>'
Run Code Online (Sandbox Code Playgroud)
在Rails 4.0.5上没问题
Loading development environment (Rails 4.0.5)
2.1.1 :001 > class Assignment < ActiveRecord::Base
2.1.1 :002?> belongs_to :group
2.1.1 :003?> has_one :event
2.1.1 :004?> accepts_nested_attributes_for :event
2.1.1 :005?> end
=> [:event]
Run Code Online (Sandbox Code Playgroud)
可能重复的Rails 4.1.0.beta1升级给了我未定义的局部变量或方法generated_feature_methods.就像在那里说的那样,尝试更新protected_attributesgem:
bundle update protected_attributes
Run Code Online (Sandbox Code Playgroud)