Rails Polymorphic Association, вызывающая 'nil не является символом' TypeError из form_for при попытке создания нового - PullRequest
0 голосов
/ 13 октября 2011

Модель пользователя

belongs_to :role, :polymorphic => true

Модель admin_profile (НЕ НАСТОЯЩЕЕ ИМЯ, НО ВЫ ПОЛУЧАЕТЕ ИДЕЮ)

has_one :user, :as => :role

модель user_profile (НЕ ФАКТИЧЕСКОЕ ИМЯ, НО ВЫ ПОЛУЧАЕТЕ ИДЕЮ. Есть и другие, кроме этих двух.)

has_one :user, :as => :role

Когда я захожу в / admin_profile / new, я получаю сообщение «nil is not symbol» TypeError в строке № 1.

<%= 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 Ответ

2 голосов
/ 13 октября 2011

Проблема заключалась в том, что некоторые таблицы имели: id => false.Пусть это будет предупреждением для пользователей db: schema: dump

...