Rails Polymorphic Association,在尝试创建new时,从form_for导致'nil不是符号'TypeError

时间:2011-10-12 20:02:42

标签: ruby-on-rails activerecord polymorphic-associations view-helpers

用户模型

belongs_to :role, :polymorphic => true

admin_profile模型(不是实际名称,但你得到了想法)

has_one :user, :as => :role

user_profile模型(不是实际名称,但你得到了这个想法。除了这两个之外还有其他人。)

has_one :user, :as => :role

当我访问/ admin_profile / new时,我在第1行上得到'nil不是符号'TypeError。

<%= form_for(@admin_profile) do |f| %>
    ...

@admin_profile的内容是:

<AdminProfile id: nil, birth_date: nil, url: nil>

跟踪就像这样

activerecord (3.1.1) lib/active_record/attribute_methods/primary_key.rb:8:in `to_key'
actionpack (3.1.1) lib/action_controller/record_identifier.rb:76:in `record_key_for_dom_id'
actionpack (3.1.1) lib/action_controller/record_identifier.rb:57:in `dom_id'
actionpack (3.1.1) lib/action_view/helpers/form_helper.rb:388:in `apply_form_for_options!'
actionpack (3.1.1) lib/action_view/helpers/form_helper.rb:365:in `form_for'

如果还需要其他信息,请与我们联系。

1 个答案:

答案 0 :(得分:2)

问题是某些表格有:id =&gt;假。让这成为db:schema:dump

的用户的警告