0

~~~ 找到了解决办法!~~~我把jean_controller.rb中的def新方法改成了

def new
    @jean = Jean.create(params[:id])
end

并在我的 _form 部分中大写我的模型和描述(以匹配我的迁移文件中的大写模型和描述)

谢谢各位的帮助!

~~~~~~~~~~~~~~~~~

因此,我广泛寻找解决问题的方法,但无济于事。它驱使我专门创建一个帐户来问这个问题。我正在使用导轨 4.2.0

我正在使用本教程https://mackenziechild.me/12-in-12/4/来构建 Pinterest 克隆,但我的 _form.html.haml 部分遇到了这个错误:

Jeans#new /app/views/jeans/_form.html.haml 中的 ActionController::UrlGenerationError 其中第 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

谁能帮我?:(:

4

1 回答 1

0

您需要在控制器中创建一个显示操作来显示新发布的牛仔裤,基本上将其添加到您的控制器中:

def show
  @jean=Jean.find(params[:id])
end

您还需要将创建操作更改为

def create
  @jean = Jean.create(jean_params)
end
于 2015-01-30T04:37:08.850 回答