私は、プロジェクト内でCustomer
のフルCRUDシステムを実装しました。私はこのレール内のモジュールとモデル名との混同
app/controllers/admin/customer/features_controller.rb
コードのようなファイルパスにfeature_controller.rb
(名前が変更された)新しいコントローラを作成したのでcustomers_controller.rb
のパスは、その上に
app/controllers/admin/customers_controller.rb
ですが、私は新しい機能を追加する必要がありますコントローラ内部で
module Admin
module Customer
class FeatureController < ApplicationController
def index; end
end
end
end
は、だから、私は通常、クストを作成するときなど、いくつかの方法が影響を受けた私の古い機能を持っていますマーそれがこのエラーを報告している:
NoMethodError (undefined method `new' for Admin::Customer:Module):
app/controllers/admin/customers_controller.rb:21:in `create'
と行番号21は、次のとおりです。
@customer = Customer.new customer_params
if @customer.save
....
私は、新しいコントローラやフォルダだけでなくが、それでも同じエラーを取り除きます。
クラスの種類をbinding.pry
に見て、Module
と言っています。
UPDATE development.rb
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false
# Do not eager load code on boot.
config.eager_load = false
application.rb
config.autoload_paths += %W(#{config.root}/lib)
config.autoload_paths += Dir["#{config.root}/lib/**/*"].select{|f| File.directory? f}
誰もそれについて考えていますか? –
古いコードを見るのに問題があるので、devキャッシュをオフにしてみてください。この質問は最近の月であるため、Rails 5とPumaを使用している可能性があります。 'rails server --help'です。次のコマンドを試してください: 'rails server --no-dev-caching'。 – Chloe