【问题标题】:NoMethodError in Admin::ApartmentPostsController#createAdmin::ApartmentPostsController#create 中的 NoMethodError
【发布时间】:2017-08-15 05:48:05
【问题描述】:

我在 Ruby on Rails 网站的管理面板中使用活动管理员。我的 ApartmentPost 资源上有此代码。

ActiveAdmin.register ApartmentPost do
permit_params :title, :max_stay, :min_stay, :bed_configuration, :number_of_guests,
                        :features, :description, :admin_user_id, :apartment_number,:latitude, :longitude, :clean_fee, :country, :location, photos: []

 form(html: { multipart: true }) do |f|
f.inputs do
  f.input :title
  f.input :max_stay
  f.input :min_stay
  f.input :bed_configuration
  f.input :number_of_guests
  f.input :features
  f.input :description
  f.input :country
  f.input :location
  f.input :apartment_number
  f.input :latitude
  f.input :longitude
  f.input :clean_fee
  f.input :admin_user_id, as: :hidden, input_html: {value: current_admin_user.id}
  f.file_field :photos, multiple: true
end
f.actions
end

所以我得到的错误是在创建一个新的 ApartmentPost 时。错误是:

我在 AparmentPost 中创建了一个名为 rate 的列,但现在它已被删除。它仍然给出了这个错误。

这是来自 schema.rb 的表:

create_table "apartment_posts", force: :cascade do |t|
t.integer  "admin_user_id",                   null: false
t.integer  "max_stay",                        null: false
t.string   "bed_configuration",               null: false
t.integer  "number_of_guests",                null: false
t.string   "features",                        null: false
t.string   "description",                     null: false
t.json     "photos"
t.datetime "created_at",                      null: false
t.datetime "updated_at",                      null: false
t.string   "title",                           null: false
t.string   "country",                         null: false
t.string   "apartment_number",                null: false
t.string   "latitude"
t.string   "longitude"
t.integer  "min_stay",                        null: false
t.string   "location",                        null: false
t.integer  "clean_fee",         default: 100, null: false
t.integer  "property_type_id"
t.index ["admin_user_id"], name: "index_apartment_posts_on_admin_user_id", using: :btree
t.index ["property_type_id"], name: "index_apartment_posts_on_property_type_id", using: :btree
end

这是 routes.rb 中的代码

devise_for :admin_users, ActiveAdmin::Devise.config
ActiveAdmin.routes(self)

我是 Rails 和 Active Admin 的新手。我尝试到处搜索解决方案,甚至尝试卸载 active_admin gem 并再次安装并删除 apartment_post 资源并再次生成它,但它们都不起作用。

【问题讨论】:

  • 你重启spring 和你的rails 服务器了吗?
  • 是的,已经尝试过重启服务器。但是有什么不同的方式来重启spring吗?
  • spring stop 会停止并自动重启spring。
  • 是的,也试过了。没用:/
  • 你能在你的代码库中搜索rate,看看是否有任何你可能错过的弹出窗口?

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


【解决方案1】:

您可能忘记删除代码库中某处的rate。如果您遗漏了什么,请尝试搜索。

【讨论】:

    猜你喜欢
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-20
    • 1970-01-01
    相关资源
    最近更新 更多