,ruby-on-rails,ruby"/>

首页 > 解决方案 > 如何解决“未定义的局部变量或方法‘文章’#" 在 ruby​​ on rails 中

问题描述

我是 ruby​​ on rails web 开发的新手。现在我尝试使用 ruby​​ on rails 创建简单的表单。

但提交表单后显示以下错误,

NameError in ArticlesController#create

undefined local variable or method `article` for #<ArticlesController:0x9d00548> Did you mean? article_url

Request

Parameters:

{"utf8"=>"✓",
"authenticity_token"=>"vUOVlqSQTJMHGT11RhZKv4jfcKgEyxnHXCMiHSeaUI7ghsnoZ4vsjZ/QmM2d/MvLLV0YFJ1UIn61RTgJEcgVvA==",
"article"=>{"itle"=>"Text heading", "text"=>"Text subject"},
"commit"=>"Save Article"}

Response
Headers:

None

我的代码部分是,

新的.html.erb

<h1>New Article</h1>

<%= form_with scope: :article, url: articles_path, local: true do |form| %>
    <p>
        <%= form.label :itle %><br>
        <%= form.text_field :itle %>
    </p>
    <p>
        <%= form.label :text %><br>
        <%= form.text_field :text %>
    </p>

    <p>
        <%= form.submit %>
    </p>
<% end %>

文章控制器

class ArticlesController < ApplicationController
    def new

    end

    def create
        @article = article.new(params[:article].inspect)

        @article.save
        redirect_to @article
    end
end

路线

Rails.application.routes.draw do
  get 'welcome/index'

  resources :articles
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  root 'welcome#index'
end

如果我使用以下行打印输入值,

render plain: params[:article].inspect

它显示以下消息,

<ActionController::Parameters {"title"=>"First Article!", "text"=>"This is my first article."} permitted: false>

但是我用article.new(params[:article].inspect)这条线是行不通的。

我检查了我的代码,但我不知道如何解决这个问题。

如果有人帮我找出我编码的错误

我通过使用此页面https://guides.rubyonrails.org/getting_started.html来实现我的代码

标签: ruby-on-railsruby

解决方案


从移动

@article = article.new(params[:article])

@article = Article.new(params[:article])

您需要使用该类来创建对象。还有,是的,article不存在


推荐阅读