【问题标题】:NoMethodError in Admin::Restaurants#new Active Admin Rails 5Admin::Restaurants#new Active Admin Rails 5 中的 NoMethodError
【发布时间】:2018-01-20 13:21:19
【问题描述】:

我在我的餐厅表中添加了两个电子邮件字段:

class AddEmailsToRestaurants < ActiveRecord::Migration[5.1]
  def change
    add_column :restaurants, :email2, :string, null: true, default: nil
    add_column :restaurants, :email3, :string, null: true, default: nil
  end
end

我运行了 rails db:migrate,我想在 Active Admin 表单中添加这两个字段,以便从管理界面创建新餐厅:

ActiveAdmin.register Restaurant do
  permit_params :email, :email2, :email3, [...]
  filter :name

  form do |f|
    f.inputs "Restaurant" do
      f.input :name
      f.input :email
      f.input :email2
      f.input :email3
      f.input :password
      f.input :password_confirmation
      f.input :address
      f.input :address2
      f.input :phone_number
      f.input :city
      f.input :post_code
      f.input :latitude
      f.input :longitude
      f.input :photo
    end
    f.actions
  end
[...]
end

但是当我在管理界面中单击“创建新餐厅”时,我收到以下错误:NoMethodError in Admin::Restaurants#newundefined method 'email2' for #&lt;Restaurant:0x007f9490cc0340&gt;

我该如何解决这个问题?

【问题讨论】:

  • 所以,这是一个愚蠢的问题,但我不得不问...您是否重新启动了您的应用程序?即使您在开发中运行(重新加载更改的文件),表结构信息也可能没有被刷新。
  • 哦,是的,谢谢你,我太愚蠢了……这就是问题所在……对不起。
  • 太棒了。这并不愚蠢,值得注意。我会对此发表答案。

标签: ruby-on-rails ruby-on-rails-5 activeadmin


【解决方案1】:

请注意,正在运行的开发环境不会检测迁移后对表结构的更改。

如果您通过迁移添加列,请务必停止并重新启动您的开发服务器。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多