【发布时间】:2017-01-27 19:30:27
【问题描述】:
我有 3 个模型。 Projects 有很多 Orderlines,Orderlines 有很多 Package。我有一个使用 project_orderline 作为 Show 方法的视图,其中我将所有包呈现为部分。它工作正常,但是当我添加一个新包时,我想在创建操作中重定向(实际上重定向回)相同的视图。
class PackagesController < ApplicationController
before_action :set_package, only: [:show, :edit, :update, :destroy]
def create
project = Project.find(params[:project_id])
orderline = project.orderlines.find(params[:orderline_id])
@package = orderline.packages.new(package_params)
if @package.save
flash[:success] = "Package was successfully created."
redirect_to project_orderline_path(orderline)
else
render 'new'
end
end
但我有以下错误:
ActionController::UrlGenerationError in PackagesController#create
我应该如何解决这个问题?
PS.:所以,这里是文本格式的错误消息:
PackagesController#create 中的 ActionController::UrlGenerationError 没有路线匹配 {:action=>"show", :controller=>"orderlines", :id=>nil, :orderline_id=>"18", :project_id=>#, origin: "123", project_id: 48, created_at:“2017-01-27 18:36:59”,updated_at:“2017-01-27 18:36:59”,小计:#>} 缺少必需的键:[:id]
路线:
resources :projects do
resources :orderlines do
resources :packages
end
end
【问题讨论】:
-
请编辑您的问题以包含错误消息的全文。这样会更容易回答,也会让有相同问题的其他人更容易找到这个问题。
标签: ruby-on-rails ruby view model controller