Rails 多态关联,导致“nil 不是符号”;尝试创建新的表单时出现 TypeError

发布于 2024-12-09 15:59:11 字数 1029 浏览 0 评论 0原文

用户模型

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第 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'

如果需要任何其他信息,请告诉我。

User Model

belongs_to :role, :polymorphic => true

admin_profile model (NOT ACTUAL NAME, BUT YOU GET THE IDEA)

has_one :user, :as => :role

user_profile model (NOT ACTUAL NAME, BUT YOU GET THE IDEA. There are others beyond these two.)

has_one :user, :as => :role

When I visit /admin_profile/new, I get 'nil is not a symbol' TypeError on line #1.

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

The contents of @admin_profile are:

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

The trace goes like this

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'

If there is any other information required, let me know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

娇纵 2024-12-16 15:59:11

问题是某些表有 :id =>错误的。这是对 db:schema:dump 用户的警告

The problem was some of the tables had :id => false. Let this be a warning to would be users of db:schema:dump

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文