该错误是由于在路由文件中没有定义对应的路由配置,或者请求的方法不匹配导致的。
要解决这个问题,你可以按照以下步骤进行操作:
确认路由配置文件(一般是 config/routes.rb
)中是否定义了对应的路由。
# config/routes.rb
resources :cars do
resources :consumptions
end
确认请求的方法是否正确。根据错误信息,这里是一个 POST 请求,所以需要确保请求的方法是 POST。
例如,你可以使用 Rails 提供的 form_for
方法生成一个 POST 请求的表单。
<%= form_for [@car, @consumption] do |f| %>
<% end %>
确认控制器中是否定义了对应的动作(action)。
# app/controllers/consumptions_controller.rb
class ConsumptionsController < ApplicationController
# ...
def new
@car = Car.find(params[:car_id])
@consumption = @car.consumptions.new
end
def create
@car = Car.find(params[:car_id])
@consumption = @car.consumptions.new(consumption_params)
if @consumption.save
redirect_to @car, notice: 'Consumption was successfully created.'
else
render :new
end
end
# ...
end
通过以上步骤,你应该能够解决这个错误并正确处理 POST 请求。
上一篇:ActionController::RoutingError (没有匹配的路由[PUT] ) 用于ajax调用
下一篇:ActionController::RoutingError (未初始化常量Users::Confirmations)错误的原因