~~~找到解决方案! ~~~ 我将jean_controller.rb中的def new方法更改为
def new
@jean = Jean.create(params[:id])
end
并在我的_form partial中大写我的模型和描述(以匹配我的迁移文件中的大写模型和描述)
感谢所有人的帮助!
~~~~~~~~~~~~~~~~~
所以我已经广泛寻找解决我的问题的办法,但无济于事。它促使我专门创建一个帐户来提出这个问题。我正在使用rails 4.2.0
我正在使用本教程https://mackenziechild.me/12-in-12/4/构建一个Pinterest克隆,但是我的_form.html.haml部分遇到了这个错误:
Jeans#new中的ActionController :: UrlGenerationError /app/views/jeans/_form.html.haml第1行引发: 没有路线匹配{:action =>“show”,:controller =>“jeans”}缺少必需的键:[:id]
我用input_html尝试了各种解决方案:改变我的模型,jeans_controller ......等等。
这是我的部分代码:(第一行正确缩进,但我不知道如何在stackoverflow上正确显示)
= simple_form_for @jean, html: { multipart: true } do |f|
- if @jean.errors.any?
#errors
%h2
= pluralize(@jean.errors.count, "error")
prevented this Jean Model from saving
%ul
- @jean.errors.full_messages.each do |msg|
%li= msg
.form-group
= f.input :model, input_html: { class: 'form-control' }
.form-group
= f.input :description, input_html: { class: 'form-control' }
.form-group
= f.input :price, input_html: { class: 'form-control' }
= f.button :submit, class: "btn btn-primary"
这是我的控制器代码:
class JeansController < ApplicationController
def index
end
def show
@jean=Jean.find(params[:id])
end
def new
@jean = Jean.new
end
def create
@jean = Jean.new(jean_params)
end
private
def jean_params
params.require(:jean).permit(:model, :description, :price)
end
end
和我的routes.rb
Rails.application.routes.draw do
resources :jeans
root "jeans#index"
end
任何人都可以帮助我吗? :(:
答案 0 :(得分:0)
您需要在控制器中创建一个show动作以显示新发布的牛仔裤,基本上将其添加到您的控制器:
def show
@jean=Jean.find(params[:id])
end
您还需要将创建操作更改为
def create
@jean = Jean.create(jean_params)
end